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

```asm
<binary_filter>:
  endbr64
  push   %r12
  mov    %edx,%r8d
  mov    %ecx,%edx
  push   %rbp
  mov    %esi,%ebp
  lea    -0x2(%r8),%esi
  lea    -0x1(%r8),%r11d
  lea    -0x3(%rbp),%eax
  push   %rbx
  lea    -0x3(%r8),%ebx
  imul   %edx,%eax
  lea    0x1(%r8),%r10d
  lea    0x2(%r8),%ecx
  lea    0x3(%r8),%r9d
  lea    (%rsi,%rax,1),%ebp
  lea    (%rbx,%rax,1),%r12d
  movslq %ebp,%rbp
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%r11,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%r8,%rax,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%r10,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rcx,%rax,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%r9,%rax,1),%r12d
  add    %edx,%eax
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rax,%rbx,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rax,%rsi,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rax,%r11,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%r8,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rax,%r10,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rax,%rcx,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rax,%r9,1),%ebp
  add    %edx,%eax
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rax,%rbx,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rax,%rsi,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rax,%r11,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%r8,%rax,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rax,%r10,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rax,%rcx,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rax,%r9,1),%r12d
  add    %edx,%eax
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rbx,%rax,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rsi,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%r11,%rax,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%r8,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%r10,%rax,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rcx,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%r9,%rax,1),%ebp
  add    %edx,%eax
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rbx,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rsi,%rax,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%r11,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%r8,%rax,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%r10,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rcx,%rax,1),%ebp
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%r9,%rax,1),%r12d
  add    %edx,%eax
  movslq %r12d,%r12
  add    %eax,%edx
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%rbx,%rax,1),%ebp
  add    %edx,%ebx
  movslq %ebp,%rbp
  movslq %ebx,%rbx
  movzbl (%rdi,%rbp,1),%ebp
  movzbl (%rdi,%rbx,1),%ebx
  add    %r12d,%ebp
  lea    (%rsi,%rax,1),%r12d
  add    %edx,%esi
  movslq %r12d,%r12
  movslq %esi,%rsi
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%r11,%rax,1),%ebp
  add    %edx,%r11d
  movslq %ebp,%rbp
  movslq %r11d,%r11
  movzbl (%rdi,%rbp,1),%ebp
  movzbl (%rdi,%r11,1),%r11d
  add    %r12d,%ebp
  lea    (%r8,%rax,1),%r12d
  movslq %r12d,%r12
  movzbl (%rdi,%r12,1),%r12d
  add    %ebp,%r12d
  lea    (%r10,%rax,1),%ebp
  add    %edx,%r10d
  movslq %ebp,%rbp
  movslq %r10d,%r10
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  lea    (%rcx,%rax,1),%r12d
  add    %edx,%ecx
  movslq %r12d,%r12
  movslq %ecx,%rcx
  movzbl (%rdi,%r12,1),%r12d
  movzbl (%rdi,%rcx,1),%ecx
  add    %ebp,%r12d
  lea    (%r9,%rax,1),%ebp
  movzbl (%rdi,%rsi,1),%eax
  movslq %ebp,%rbp
  movzbl (%rdi,%rbp,1),%ebp
  add    %r12d,%ebp
  add    %ebp,%ebx
  add    %ebx,%eax
  pop    %rbx
  pop    %rbp
  add    %eax,%r11d
  lea    (%r8,%rdx,1),%eax
  add    %r9d,%edx
  pop    %r12
  cltq
  movslq %edx,%rdx
  movzbl (%rdi,%rax,1),%esi
  movzbl (%rdi,%r10,1),%eax
  add    %r11d,%esi
  add    %esi,%eax
  add    %eax,%ecx
  movzbl (%rdi,%rdx,1),%eax
  add    %ecx,%eax
  cmp    $0x18,%eax
  setg   %al
  ret
```

assistant: ```c
unsigned char binary_filter(unsigned char *label, int y, int x, int width) {
  int i, j;
  int sum = 0;
  for (i = y - 7 / 2; i <= y + 7 / 2; i++)
    for (j = x - 7 / 2; j <= x + 7 / 2; j++) {
      sum += label[i * width + j];
    }
  if (sum > 7 * 7 / 2.0)
    return 1;
  else
    return 0;
}
```