user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<memory_not_equal_display_error>:
  endbr64
  mov    %rsi,%rcx
  mov    %rdi,%r8
  mov    %rdx,%rsi
  test   %rdx,%rdx
  je     L13
  lea    -0x1(%rdx),%rax
  cmp    $0xe,%rax
  jbe    L170
  and    $0xfffffffffffffff0,%rdx
  pxor   %xmm4,%xmm4
  pxor   %xmm6,%xmm6
  xor    %eax,%eax
  movdqa D8(%rip),%xmm7
  pxor   %xmm5,%xmm5
  pxor   %xmm3,%xmm3
  nopw   0x0(%rax,%rax,1)
L226:
  movdqu (%rcx,%rax,1),%xmm2
  movdqu (%r8,%rax,1),%xmm0
  add    $0x10,%rax
  pcmpeqb %xmm2,%xmm0
  pand   %xmm7,%xmm0
  movdqa %xmm0,%xmm1
  punpckhbw %xmm6,%xmm0
  punpcklbw %xmm6,%xmm1
  movdqa %xmm0,%xmm2
  punpckhwd %xmm5,%xmm0
  movdqa %xmm1,%xmm8
  punpckhwd %xmm5,%xmm1
  punpcklwd %xmm5,%xmm2
  movdqa %xmm1,%xmm9
  punpcklwd %xmm5,%xmm8
  punpckhdq %xmm3,%xmm1
  punpckldq %xmm3,%xmm9
  paddq  %xmm9,%xmm1
  movdqa %xmm8,%xmm9
  punpckhdq %xmm3,%xmm8
  punpckldq %xmm3,%xmm9
  paddq  %xmm9,%xmm8
  paddq  %xmm8,%xmm1
  movdqa %xmm2,%xmm8
  punpckhdq %xmm3,%xmm2
  punpckldq %xmm3,%xmm8
  paddq  %xmm8,%xmm2
  movdqa %xmm0,%xmm8
  punpckhdq %xmm3,%xmm0
  punpckldq %xmm3,%xmm8
  paddq  %xmm4,%xmm0
  paddq  %xmm8,%xmm2
  paddq  %xmm2,%xmm1
  movdqa %xmm1,%xmm4
  paddq  %xmm0,%xmm4
  cmp    %rax,%rdx
  jne    L226
  movdqa %xmm4,%xmm0
  mov    %rsi,%rdx
  psrldq $0x8,%xmm0
  and    $0xfffffffffffffff0,%rdx
  paddq  %xmm0,%xmm4
  movq   %xmm4,%rax
  test   $0xf,%sil
  je     L141
L120:
  movzbl (%rcx,%rdx,1),%edi
  cmp    %dil,(%r8,%rdx,1)
  sete   %dil
  movzbl %dil,%edi
  add    %rdi,%rax
  lea    0x1(%rdx),%rdi
  cmp    %rsi,%rdi
  jae    L141
  movzbl 0x1(%r8,%rdx,1),%edi
  cmp    %dil,0x1(%rcx,%rdx,1)
  je     L399
L270:
  lea    0x2(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0x2(%rcx,%rdx,1),%edi
  cmp    %dil,0x2(%r8,%rdx,1)
  je     L320
L144:
  lea    0x3(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0x3(%rcx,%rdx,1),%edi
  cmp    %dil,0x3(%r8,%rdx,1)
  je     L112
L179:
  lea    0x4(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0x4(%rcx,%rdx,1),%edi
  cmp    %dil,0x4(%r8,%rdx,1)
  je     L319
  lea    0x5(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
L411:
  movzbl 0x5(%rcx,%rdx,1),%edi
  cmp    %dil,0x5(%r8,%rdx,1)
  jne    L164
  add    $0x1,%rax
L164:
  lea    0x6(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0x6(%rcx,%rdx,1),%edi
  cmp    %dil,0x6(%r8,%rdx,1)
  jne    L341
  add    $0x1,%rax
L341:
  lea    0x7(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0x7(%rcx,%rdx,1),%edi
  cmp    %dil,0x7(%r8,%rdx,1)
  jne    L15
  add    $0x1,%rax
L15:
  lea    0x8(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0x8(%rcx,%rdx,1),%edi
  cmp    %dil,0x8(%r8,%rdx,1)
  jne    L175
  add    $0x1,%rax
L175:
  lea    0x9(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0x9(%rcx,%rdx,1),%edi
  cmp    %dil,0x9(%r8,%rdx,1)
  je     L6
L180:
  lea    0xa(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0xa(%rcx,%rdx,1),%edi
  cmp    %dil,0xa(%r8,%rdx,1)
  je     L367
L69:
  lea    0xb(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0xb(%rcx,%rdx,1),%edi
  cmp    %dil,0xb(%r8,%rdx,1)
  je     L276
L74:
  lea    0xc(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0xc(%rcx,%rdx,1),%edi
  cmp    %dil,0xc(%r8,%rdx,1)
  je     L98
L214:
  lea    0xd(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0xd(%rcx,%rdx,1),%edi
  cmp    %dil,0xd(%r8,%rdx,1)
  jne    L300
  add    $0x1,%rax
L300:
  lea    0xe(%rdx),%rdi
  cmp    %rdi,%rsi
  jbe    L141
  movzbl 0xe(%rcx,%rdx,1),%edi
  cmp    %dil,0xe(%r8,%rdx,1)
  jne    L141
  add    $0x1,%rax
  nopl   0x0(%rax)
L141:
  cmp    %rax,%rsi
  je     L13
  mov    $0x1,%eax
  ret
  nopl   0x0(%rax,%rax,1)
L399:
  add    $0x1,%rax
  jmp    L270
  nopl   0x0(%rax)
L320:
  add    $0x1,%rax
  jmp    L144
  nopl   0x0(%rax)
L112:
  add    $0x1,%rax
  jmp    L179
  nopl   0x0(%rax)
L319:
  lea    0x5(%rdx),%rdi
  add    $0x1,%rax
  cmp    %rdi,%rsi
  ja     L411
  jmp    L141
  nopl   0x0(%rax,%rax,1)
L6:
  add    $0x1,%rax
  jmp    L180
L367:
  add    $0x1,%rax
  jmp    L69
L276:
  add    $0x1,%rax
  jmp    L74
L98:
  add    $0x1,%rax
  jmp    L214
  nopl   0x0(%rax)
L13:
  sub    $0x8,%rsp
  mov    %r8,%rdx
  lea    D13(%rip),%rdi
  call   <cm_print_error@plt>
  xor    %eax,%eax
  add    $0x8,%rsp
  ret
L170:
  xor    %edx,%edx
  xor    %eax,%eax
  jmp    L120
```

tool_calls: name: parse_data
arguments: data_tag: D8
data_type: byte[16]
name: parse_data
arguments: data_tag: D13
data_type: string

tool: {"D8": [0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01]}

tool: D13: %zdbytes of %p and %p the same


assistant: ```c
int memory_not_equal_display_error(const char *const a, const char *const b, const size_t size) {
  size_t same = 0;
  size_t i;
  for (i = 0; i < size; i++) {
    const char l = a[i];
    const char r = b[i];
    if (l == r) {
      same++;
    }
  }
  if (same == size) {
    cm_print_error("%"
                   "zd"
                   "bytes of %p and %p the same\n",
                   same, a, b);
    return 0;
  }
  return 1;
}
```