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

```asm
<bgsub_classify>:
  endbr64
  test   %esi,%esi
  jle    L30
  movslq %esi,%rax
  push   %rbx
  lea    0x0(,%rax,4),%r10
  add    %r8,%rax
  lea    (%rdi,%r10,1),%r9
  cmp    %r9,%r8
  setae  %r9b
  cmp    %rax,%rdi
  setae  %r11b
  or     %r11d,%r9d
  lea    (%rdx,%r10,1),%r11
  cmp    %r11,%r8
  setae  %r11b
  cmp    %rax,%rdx
  setae  %bl
  or     %ebx,%r11d
  and    %r11d,%r9d
  lea    -0x1(%rsi),%r11d
  cmp    $0xe,%r11d
  seta   %r11b
  test   %r11b,%r9b
  je     L87
  add    %rcx,%r10
  cmp    %r10,%r8
  setae  %r9b
  cmp    %rax,%rcx
  setae  %al
  or     %al,%r9b
  je     L87
  mov    %esi,%r9d
  movdqa D12(%rip),%xmm4
  movdqa D5(%rip),%xmm5
  xor    %eax,%eax
  shr    $0x4,%r9d
  shl    $0x4,%r9
  nopw   0x0(%rax,%rax,1)
L10:
  movups (%rdx,%rax,4),%xmm7
  movups (%rdi,%rax,4),%xmm3
  movups 0x10(%rdi,%rax,4),%xmm2
  movups 0x30(%rdx,%rax,4),%xmm6
  subps  %xmm7,%xmm3
  movups 0x10(%rdx,%rax,4),%xmm7
  movups 0x20(%rdi,%rax,4),%xmm1
  movups 0x30(%rdi,%rax,4),%xmm0
  subps  %xmm7,%xmm2
  movups 0x20(%rdx,%rax,4),%xmm7
  subps  %xmm6,%xmm0
  mulps  %xmm3,%xmm3
  subps  %xmm7,%xmm1
  movaps %xmm2,%xmm7
  mulps  %xmm2,%xmm7
  movaps %xmm0,%xmm6
  mulps  %xmm0,%xmm6
  movaps %xmm1,%xmm2
  movups (%rcx,%rax,4),%xmm0
  mulps  %xmm1,%xmm2
  movups 0x20(%rcx,%rax,4),%xmm1
  cmpltps %xmm3,%xmm0
  movups 0x10(%rcx,%rax,4),%xmm3
  cmpltps %xmm7,%xmm3
  pand   %xmm4,%xmm0
  cmpltps %xmm2,%xmm1
  movups 0x30(%rcx,%rax,4),%xmm2
  pand   %xmm4,%xmm3
  cmpltps %xmm6,%xmm2
  movdqa %xmm0,%xmm6
  punpcklwd %xmm3,%xmm0
  punpckhwd %xmm3,%xmm6
  movdqa %xmm0,%xmm3
  pand   %xmm4,%xmm1
  punpckhwd %xmm6,%xmm3
  punpcklwd %xmm6,%xmm0
  pand   %xmm4,%xmm2
  punpcklwd %xmm3,%xmm0
  movdqa %xmm1,%xmm3
  punpcklwd %xmm2,%xmm1
  punpckhwd %xmm2,%xmm3
  pand   %xmm5,%xmm0
  movdqa %xmm1,%xmm2
  punpcklwd %xmm3,%xmm1
  punpckhwd %xmm3,%xmm2
  punpcklwd %xmm2,%xmm1
  pand   %xmm5,%xmm1
  packuswb %xmm1,%xmm0
  movups %xmm0,(%r8,%rax,1)
  add    $0x10,%rax
  cmp    %r9,%rax
  jne    L10
  mov    %esi,%r9d
  and    $0xfffffff0,%r9d
  test   $0xf,%sil
  je     L132
  mov    %r9d,%r10d
  movss  (%rdi,%r10,4),%xmm0
  subss  (%rdx,%r10,4),%xmm0
  lea    0x0(,%r10,4),%rax
  mulss  %xmm0,%xmm0
  comiss (%rcx,%r10,4),%xmm0
  seta   (%r8,%r10,1)
  lea    0x1(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x4(%rdi,%rax,1),%xmm0
  subss  0x4(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x4(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0x2(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x8(%rdi,%rax,1),%xmm0
  subss  0x8(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x8(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0x3(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0xc(%rdi,%rax,1),%xmm0
  subss  0xc(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0xc(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0x4(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x10(%rdi,%rax,1),%xmm0
  subss  0x10(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x10(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0x5(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x14(%rdi,%rax,1),%xmm0
  subss  0x14(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x14(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0x6(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x18(%rdi,%rax,1),%xmm0
  subss  0x18(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x18(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0x7(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x1c(%rdi,%rax,1),%xmm0
  subss  0x1c(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x1c(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0x8(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x20(%rdi,%rax,1),%xmm0
  subss  0x20(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x20(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0x9(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x24(%rdi,%rax,1),%xmm0
  subss  0x24(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x24(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0xa(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x28(%rdi,%rax,1),%xmm0
  subss  0x28(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x28(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0xb(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x2c(%rdi,%rax,1),%xmm0
  subss  0x2c(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x2c(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0xc(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x30(%rdi,%rax,1),%xmm0
  subss  0x30(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x30(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  lea    0xd(%r9),%r10d
  cmp    %r10d,%esi
  jle    L132
  movss  0x34(%rdi,%rax,1),%xmm0
  subss  0x34(%rdx,%rax,1),%xmm0
  movslq %r10d,%r10
  mulss  %xmm0,%xmm0
  comiss 0x34(%rcx,%rax,1),%xmm0
  seta   (%r8,%r10,1)
  add    $0xe,%r9d
  cmp    %r9d,%esi
  jle    L132
  movss  0x38(%rdi,%rax,1),%xmm0
  subss  0x38(%rdx,%rax,1),%xmm0
  movslq %r9d,%r9
  mulss  %xmm0,%xmm0
  comiss 0x38(%rcx,%rax,1),%xmm0
  seta   (%r8,%r9,1)
L132:
  pop    %rbx
  ret
L87:
  mov    %esi,%esi
  xor    %eax,%eax
  nopl   0x0(%rax)
L171:
  movss  (%rdi,%rax,4),%xmm0
  subss  (%rdx,%rax,4),%xmm0
  mulss  %xmm0,%xmm0
  comiss (%rcx,%rax,4),%xmm0
  seta   (%r8,%rax,1)
  add    $0x1,%rax
  cmp    %rsi,%rax
  jne    L171
  pop    %rbx
  ret
  nopw   0x0(%rax,%rax,1)
L30:
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D12
datatype: byte[16]
name: disassemble_data
arguments: data_label: D5
datatype: byte[16]

tool: {"D12": [0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00]}

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

assistant: ```c
void bgsub_classify(float *image, int size, float *m, float *v, unsigned char *bgsub) {
  int i;
  float val;
  for (i = 0; i < size; ++i) {
    bgsub[i] = (image[i] - m[i]) * (image[i] - m[i]) > v[i];
  }
}
```