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

```asm
<get_hash1_case_raw>:
  endbr64
  movslq %esi,%r8
  mov    %rdi,%rcx
  lea    -0x4(%r8),%rdx
  add    %rdx,%rcx
  jb     L66
  mov    %rdx,%r9
  mov    %rdi,%rax
  shr    $0x2,%r9
  add    $0x1,%r9
  cmp    $0x3b,%rdx
  jbe    L109
  pxor   %xmm7,%xmm7
  pxor   %xmm15,%xmm15
  pxor   %xmm6,%xmm6
  mov    %r9,%rdx
  shr    $0x4,%rdx
  movaps %xmm7,-0x38(%rsp)
  movdqa D11(%rip),%xmm14
  movdqa D14(%rip),%xmm7
  shl    $0x6,%rdx
  add    %rdi,%rdx
L169:
  movdqu (%rax),%xmm2
  movdqu (%rax),%xmm1
  movdqa %xmm7,%xmm5
  add    $0x40,%rax
  movdqu -0x30(%rax),%xmm0
  movdqu -0x20(%rax),%xmm4
  movdqa %xmm6,%xmm12
  pand   %xmm7,%xmm2
  psrlw  $0x8,%xmm1
  movdqu -0x20(%rax),%xmm3
  pand   %xmm7,%xmm0
  pand   %xmm7,%xmm4
  packuswb %xmm0,%xmm2
  movdqu -0x30(%rax),%xmm0
  psrlw  $0x8,%xmm3
  psrlw  $0x8,%xmm0
  packuswb %xmm0,%xmm1
  movdqu -0x10(%rax),%xmm0
  pand   %xmm7,%xmm0
  packuswb %xmm0,%xmm4
  movdqu -0x10(%rax),%xmm0
  pand   %xmm4,%xmm5
  psrlw  $0x8,%xmm4
  psrlw  $0x8,%xmm0
  packuswb %xmm0,%xmm3
  movdqa %xmm7,%xmm0
  pand   %xmm2,%xmm0
  psrlw  $0x8,%xmm2
  packuswb %xmm5,%xmm0
  packuswb %xmm4,%xmm2
  movdqa %xmm7,%xmm5
  movdqa %xmm7,%xmm4
  pand   %xmm3,%xmm5
  movdqa %xmm0,%xmm9
  pand   %xmm1,%xmm4
  psrlw  $0x8,%xmm3
  movdqa %xmm2,%xmm8
  psrlw  $0x8,%xmm1
  packuswb %xmm5,%xmm4
  movdqa %xmm15,%xmm5
  packuswb %xmm3,%xmm1
  pcmpgtb %xmm4,%xmm5
  movdqa %xmm15,%xmm3
  pcmpgtb %xmm0,%xmm3
  movdqa %xmm1,%xmm10
  punpcklbw %xmm3,%xmm9
  punpckhbw %xmm3,%xmm0
  movdqa %xmm4,%xmm3
  punpcklbw %xmm5,%xmm3
  punpckhbw %xmm5,%xmm4
  movdqa %xmm15,%xmm5
  pcmpgtb %xmm2,%xmm5
  pcmpgtw %xmm3,%xmm12
  movdqa %xmm3,%xmm13
  punpcklbw %xmm5,%xmm8
  punpckhbw %xmm5,%xmm2
  movdqa %xmm15,%xmm5
  pcmpgtb %xmm1,%xmm5
  punpcklwd %xmm12,%xmm13
  punpckhwd %xmm12,%xmm3
  pslld  $0x10,%xmm13
  psllw  $0x8,%xmm8
  movdqa %xmm6,%xmm12
  pslld  $0x10,%xmm3
  pcmpgtw %xmm0,%xmm12
  punpcklbw %xmm5,%xmm10
  psllw  $0x8,%xmm2
  punpckhbw %xmm5,%xmm1
  movdqa %xmm6,%xmm5
  pcmpgtw %xmm9,%xmm5
  movdqa %xmm5,%xmm11
  movdqa %xmm9,%xmm5
  punpcklwd %xmm11,%xmm5
  movaps %xmm11,-0x28(%rsp)
  punpckhwd -0x28(%rsp),%xmm9
  pslld  $0x18,%xmm5
  paddd  %xmm5,%xmm13
  pslld  $0x18,%xmm9
  movdqa %xmm6,%xmm5
  pcmpgtw %xmm8,%xmm5
  paddd  %xmm9,%xmm3
  movdqa %xmm0,%xmm9
  punpcklwd %xmm12,%xmm9
  punpckhwd %xmm12,%xmm0
  pslld  $0x18,%xmm9
  pslld  $0x18,%xmm0
  movdqa %xmm5,%xmm11
  movdqa %xmm8,%xmm5
  punpcklwd %xmm11,%xmm5
  punpckhwd %xmm11,%xmm8
  movdqa %xmm6,%xmm11
  paddd  %xmm13,%xmm5
  movdqa %xmm6,%xmm13
  paddd  %xmm8,%xmm3
  pcmpgtw %xmm10,%xmm13
  pcmpgtw %xmm4,%xmm11
  movaps %xmm5,-0x18(%rsp)
  movdqa %xmm10,%xmm5
  movdqa %xmm6,%xmm8
  pcmpgtw %xmm2,%xmm8
  punpckhwd %xmm13,%xmm10
  punpcklwd %xmm13,%xmm5
  movdqa %xmm1,%xmm13
  paddd  %xmm3,%xmm10
  movdqa %xmm4,%xmm3
  punpckhwd %xmm11,%xmm4
  punpcklwd %xmm11,%xmm3
  pslld  $0x10,%xmm4
  paddd  -0x18(%rsp),%xmm5
  pslld  $0x10,%xmm3
  paddd  %xmm4,%xmm0
  por    %xmm14,%xmm10
  paddd  %xmm3,%xmm9
  movdqa %xmm2,%xmm3
  punpckhwd %xmm8,%xmm2
  punpcklwd %xmm8,%xmm3
  paddd  %xmm2,%xmm0
  por    %xmm14,%xmm5
  paddd  %xmm3,%xmm9
  movdqa %xmm6,%xmm3
  pcmpgtw %xmm1,%xmm3
  punpckhwd %xmm3,%xmm1
  punpcklwd %xmm3,%xmm13
  paddd  %xmm1,%xmm0
  paddd  %xmm13,%xmm9
  por    %xmm14,%xmm9
  por    %xmm14,%xmm0
  movdqa %xmm0,%xmm2
  movdqa %xmm9,%xmm1
  psrld  $0x3,%xmm2
  psrld  $0x3,%xmm1
  pxor   %xmm9,%xmm1
  pxor   %xmm2,%xmm0
  movdqa %xmm10,%xmm2
  paddd  %xmm1,%xmm0
  psrld  $0x3,%xmm2
  movdqa %xmm5,%xmm1
  psrld  $0x3,%xmm1
  pxor   %xmm10,%xmm2
  pxor   %xmm5,%xmm1
  paddd  %xmm2,%xmm1
  paddd  %xmm1,%xmm0
  paddd  -0x38(%rsp),%xmm0
  movaps %xmm0,-0x38(%rsp)
  cmp    %rdx,%rax
  jne    L169
  movdqa %xmm0,%xmm6
  psrldq $0x8,%xmm0
  mov    %r9,%rdx
  paddd  %xmm6,%xmm0
  and    $0xfffffffffffffff0,%rdx
  movdqa %xmm0,%xmm1
  lea    (%rdi,%rdx,4),%rax
  psrldq $0x4,%xmm1
  paddd  %xmm1,%xmm0
  movd   %xmm0,%esi
  cmp    %r9,%rdx
  je     L151
L43:
  movsbl (%rax),%edx
  movsbl 0x1(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x2(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x3(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x4(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x5(%rax),%edx
  movsbl 0x4(%rax),%r10d
  shl    $0x10,%edx
  shl    $0x18,%r10d
  add    %r10d,%edx
  movsbl 0x6(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x7(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x8(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x8(%rax),%edx
  movsbl 0x9(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0xa(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0xb(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0xc(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0xc(%rax),%edx
  movsbl 0xd(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0xe(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0xf(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x10(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x10(%rax),%edx
  movsbl 0x11(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x12(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x13(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x14(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x14(%rax),%edx
  movsbl 0x15(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x16(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x17(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x18(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x18(%rax),%edx
  movsbl 0x19(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x1a(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x1b(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x1c(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x1c(%rax),%edx
  movsbl 0x1d(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x1e(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x1f(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x20(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x20(%rax),%edx
  movsbl 0x21(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x22(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x23(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x24(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x24(%rax),%edx
  movsbl 0x25(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x26(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x27(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x28(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x28(%rax),%edx
  movsbl 0x29(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x2a(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x2b(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x2c(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x2c(%rax),%edx
  movsbl 0x2d(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x2e(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x2f(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x30(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x30(%rax),%edx
  movsbl 0x31(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x32(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x33(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x34(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x34(%rax),%edx
  movsbl 0x35(%rax),%r10d
  shl    $0x18,%edx
  shl    $0x10,%r10d
  add    %r10d,%edx
  movsbl 0x36(%rax),%r10d
  shl    $0x8,%r10d
  add    %r10d,%edx
  movsbl 0x37(%rax),%r10d
  add    %r10d,%edx
  or     $0x20202020,%edx
  mov    %edx,%r10d
  shr    $0x3,%r10d
  xor    %r10d,%edx
  add    %edx,%esi
  lea    0x38(%rax),%rdx
  cmp    %rdx,%rcx
  jb     L151
  movsbl 0x39(%rax),%edx
  movsbl 0x38(%rax),%ecx
  shl    $0x10,%edx
  shl    $0x18,%ecx
  add    %ecx,%edx
  movsbl 0x3a(%rax),%ecx
  movsbl 0x3b(%rax),%eax
  shl    $0x8,%ecx
  add    %ecx,%edx
  add    %edx,%eax
  or     $0x20202020,%eax
  mov    %eax,%edx
  shr    $0x3,%edx
  xor    %edx,%eax
  add    %eax,%esi
  nopw   0x0(%rax,%rax,1)
L151:
  lea    (%rdi,%r9,4),%rcx
L40:
  add    %r8,%rdi
  cmp    %rcx,%rdi
  jbe    L161
  xor    %eax,%eax
  xchg   %ax,%ax
L152:
  shl    $0x8,%eax
  add    $0x1,%rcx
  mov    %eax,%edx
  movzbl -0x1(%rcx),%eax
  or     $0x20,%eax
  movsbl %al,%eax
  add    %edx,%eax
  cmp    %rcx,%rdi
  jne    L152
  mov    %eax,%edx
  shr    $0x3,%edx
  xor    %edx,%eax
  add    %eax,%esi
L161:
  mov    %esi,%eax
  mov    %esi,%edx
  shr    $0xb,%eax
  shr    $0xd,%edx
  add    %edx,%eax
  add    %esi,%eax
  shr    $0x17,%esi
  add    %esi,%eax
  ret
  nopw   0x0(%rax,%rax,1)
L66:
  mov    %rdi,%rcx
  xor    %esi,%esi
  jmp    L40
L109:
  xor    %esi,%esi
  jmp    L43
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D11
data_type: byte[16]
name: extract_symbolic_data
arguments: data_tag: D14
data_type: byte[16]

tool: {"D11": [0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20]}

tool: {"D14": [0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00]}

assistant: ```c
unsigned int get_hash1_case_raw(const char *s, int len) {
  const char *p;
  register unsigned v;
  register unsigned h;
  h = 0;
  do {
    for ((p) = (s); (p) <= ((s + len) - 4); (p) += 4) {
      (v) = ((*(p) << 24) + ((p)[1] << 16) + ((p)[2] << 8) + (p)[3]) | 0x20202020;
      (h) += (v) ^ ((v) >> 3);
    }
    (v) = 0;
    for (; (p) < (s + len); (p)++) {
      (v) <<= 8;
      (v) += *(p) | 0x20;
    }
    (h) += (v) ^ ((v) >> 3);
  } while (0);
  return (((h) + ((h) >> 11)) + (((h) >> 13) + ((h) >> 23)));
}
```