user: 请将以下的汇编代码转换成C语言代码:

```asm
<hamming>:
  endbr64
  movdqu (%rsi),%xmm13
  pxor   %xmm2,%xmm2
  movdqu (%rdi),%xmm1
  movdqa %xmm2,%xmm0
  movsbl 0x10(%rdi),%r9d
  movsbl 0x10(%rsi),%eax
  pcmpgtb %xmm13,%xmm0
  movdqa %xmm13,%xmm3
  movdqa %xmm13,%xmm4
  movdqa %xmm1,%xmm12
  movdqa %xmm1,%xmm6
  mov    %r9d,%r10d
  mov    %eax,%edx
  sub    %eax,%r10d
  sub    %r9d,%eax
  cmp    %dl,%r9b
  movsbl 0x11(%rdi),%r9d
  punpcklbw %xmm0,%xmm3
  punpckhbw %xmm0,%xmm4
  pxor   %xmm0,%xmm0
  mov    %r10d,%edx
  movdqa %xmm0,%xmm5
  movdqa %xmm3,%xmm11
  cmovle %eax,%edx
  movsbl 0x11(%rsi),%eax
  pcmpgtw %xmm3,%xmm5
  movdqa %xmm4,%xmm8
  mov    %r9d,%r10d
  sub    %eax,%r10d
  punpcklwd %xmm5,%xmm11
  punpckhwd %xmm5,%xmm3
  movdqa %xmm0,%xmm5
  pcmpgtw %xmm4,%xmm5
  punpcklwd %xmm5,%xmm8
  punpckhwd %xmm5,%xmm4
  movdqa %xmm2,%xmm5
  pcmpgtb %xmm1,%xmm5
  pcmpgtb %xmm13,%xmm1
  movdqa %xmm11,%xmm13
  punpcklbw %xmm5,%xmm12
  pcmpeqb %xmm2,%xmm1
  punpckhbw %xmm5,%xmm6
  movdqa %xmm0,%xmm5
  movdqa %xmm12,%xmm10
  movdqa %xmm6,%xmm14
  pcmpgtw %xmm12,%xmm5
  pcmpgtb %xmm1,%xmm2
  punpckhwd %xmm5,%xmm12
  punpcklwd %xmm5,%xmm10
  movdqa %xmm0,%xmm5
  pcmpgtw %xmm6,%xmm5
  movdqa %xmm12,%xmm9
  psubd  %xmm10,%xmm13
  psubd  %xmm3,%xmm9
  psubd  %xmm12,%xmm3
  movdqa %xmm0,%xmm12
  psubd  %xmm11,%xmm10
  movdqa %xmm13,%xmm11
  punpckhwd %xmm5,%xmm6
  punpcklwd %xmm5,%xmm14
  movdqa %xmm6,%xmm5
  movdqa %xmm14,%xmm7
  psubd  %xmm4,%xmm5
  psubd  %xmm6,%xmm4
  movdqa %xmm2,%xmm6
  movdqa %xmm1,%xmm2
  punpckhbw %xmm6,%xmm1
  psubd  %xmm8,%xmm7
  punpcklbw %xmm6,%xmm2
  pcmpgtw %xmm1,%xmm0
  psubd  %xmm14,%xmm8
  pcmpgtw %xmm2,%xmm12
  movdqa %xmm2,%xmm6
  punpckhwd %xmm12,%xmm2
  punpcklwd %xmm12,%xmm6
  pand   %xmm2,%xmm3
  pandn  %xmm9,%xmm2
  pand   %xmm6,%xmm11
  por    %xmm3,%xmm2
  movdqa %xmm1,%xmm3
  pandn  %xmm10,%xmm6
  punpcklwd %xmm0,%xmm3
  punpckhwd %xmm0,%xmm1
  por    %xmm11,%xmm6
  pand   %xmm3,%xmm8
  movdqa %xmm1,%xmm0
  pandn  %xmm7,%xmm3
  pand   %xmm1,%xmm4
  por    %xmm8,%xmm3
  pandn  %xmm5,%xmm0
  paddd  %xmm2,%xmm6
  por    %xmm4,%xmm0
  paddd  %xmm6,%xmm3
  paddd  %xmm3,%xmm0
  movdqa %xmm0,%xmm1
  psrldq $0x8,%xmm1
  paddd  %xmm1,%xmm0
  movdqa %xmm0,%xmm1
  psrldq $0x4,%xmm1
  paddd  %xmm1,%xmm0
  movd   %xmm0,%ecx
  add    %ecx,%edx
  mov    %eax,%ecx
  sub    %r9d,%eax
  cmp    %cl,%r9b
  movsbl 0x12(%rdi),%r9d
  cmovg  %r10d,%eax
  mov    %r9d,%r10d
  add    %eax,%edx
  movsbl 0x12(%rsi),%eax
  mov    %eax,%ecx
  sub    %eax,%r10d
  sub    %r9d,%eax
  cmp    %cl,%r9b
  movsbl 0x13(%rdi),%r9d
  cmovg  %r10d,%eax
  mov    %r9d,%r10d
  add    %eax,%edx
  movsbl 0x13(%rsi),%eax
  mov    %eax,%ecx
  sub    %eax,%r10d
  sub    %r9d,%eax
  cmp    %cl,%r9b
  movsbl 0x14(%rdi),%r9d
  cmovg  %r10d,%eax
  mov    %r9d,%r10d
  add    %eax,%edx
  movsbl 0x14(%rsi),%eax
  mov    %eax,%ecx
  sub    %eax,%r10d
  sub    %r9d,%eax
  cmp    %cl,%r9b
  movsbl 0x15(%rdi),%r9d
  cmovg  %r10d,%eax
  mov    %r9d,%r10d
  add    %eax,%edx
  movsbl 0x15(%rsi),%eax
  mov    %eax,%ecx
  sub    %eax,%r10d
  sub    %r9d,%eax
  cmp    %cl,%r9b
  movsbl 0x16(%rdi),%r9d
  cmovg  %r10d,%eax
  mov    %r9d,%r10d
  add    %eax,%edx
  movsbl 0x16(%rsi),%eax
  mov    %eax,%ecx
  sub    %eax,%r10d
  sub    %r9d,%eax
  cmp    %cl,%r9b
  movsbl 0x17(%rdi),%r9d
  cmovg  %r10d,%eax
  mov    %r9d,%r10d
  add    %eax,%edx
  movsbl 0x17(%rsi),%eax
  mov    %eax,%ecx
  sub    %eax,%r10d
  sub    %r9d,%eax
  cmp    %cl,%r9b
  movsbl 0x18(%rdi),%r9d
  cmovg  %r10d,%eax
  mov    %r9d,%r10d
  add    %eax,%edx
  movsbl 0x18(%rsi),%eax
  movsbl 0x19(%rsi),%esi
  mov    %eax,%ecx
  sub    %eax,%r10d
  sub    %r9d,%eax
  mov    %esi,%r8d
  cmp    %cl,%r9b
  cmovg  %r10d,%eax
  add    %eax,%edx
  movsbl 0x19(%rdi),%eax
  mov    %eax,%edi
  sub    %eax,%r8d
  sub    %esi,%eax
  cmp    %sil,%dil
  cmovle %r8d,%eax
  add    %edx,%eax
  ret
```

assistant: ```c
hamming(s1, s2) char *s1, *s2;
{
  int i, j;
  for (i = j = 0; i < 26; i++) {
    j += (((s1[i]) > (s2[i])) ? s1[i] - s2[i] : s2[i] - s1[i]);
  }
  return j;
}
```