user: Converte this assembly snippet into its equivalent C code:

```asm
<fill>:
  endbr64
  mov    %rsi,%rdx
  test   %rsi,%rsi
  je     L178
  lea    -0x1(%rsi),%rax
  cmp    $0xe,%rax
  jbe    L14
  mov    %rsi,%rcx
  mov    %rdi,%rax
  movdqa D13(%rip),%xmm2
  movdqa D43(%rip),%xmm11
  and    $0xfffffffffffffff0,%rcx
  movdqa D46(%rip),%xmm10
  movdqa D49(%rip),%xmm9
  movdqa D52(%rip),%xmm8
  movdqa D61(%rip),%xmm7
  add    %rdi,%rcx
  movdqa D51(%rip),%xmm6
  movdqa D17(%rip),%xmm5
  movdqa D78(%rip),%xmm4
  movdqa D60(%rip),%xmm3
  nop
L51:
  movdqa %xmm2,%xmm12
  add    $0x10,%rax
  paddq  %xmm11,%xmm2
  movdqa %xmm12,%xmm1
  movdqa %xmm12,%xmm0
  movdqa %xmm12,%xmm13
  paddq  %xmm10,%xmm1
  paddq  %xmm8,%xmm13
  shufps $0x88,%xmm1,%xmm0
  movdqa %xmm12,%xmm1
  paddq  %xmm9,%xmm1
  shufps $0x88,%xmm13,%xmm1
  movdqa %xmm0,%xmm13
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm13
  movdqa %xmm0,%xmm1
  punpckhwd %xmm13,%xmm1
  punpcklwd %xmm13,%xmm0
  movdqa %xmm12,%xmm13
  punpcklwd %xmm1,%xmm0
  movdqa %xmm12,%xmm1
  paddq  %xmm6,%xmm13
  paddq  %xmm7,%xmm1
  pand   %xmm3,%xmm0
  shufps $0x88,%xmm13,%xmm1
  movdqa %xmm12,%xmm13
  paddq  %xmm4,%xmm12
  paddq  %xmm5,%xmm13
  shufps $0x88,%xmm12,%xmm13
  movdqa %xmm1,%xmm12
  punpcklwd %xmm13,%xmm1
  punpckhwd %xmm13,%xmm12
  movdqa %xmm1,%xmm13
  punpckhwd %xmm12,%xmm13
  punpcklwd %xmm12,%xmm1
  punpcklwd %xmm13,%xmm1
  pand   %xmm3,%xmm1
  packuswb %xmm1,%xmm0
  movups %xmm0,-0x10(%rax)
  cmp    %rcx,%rax
  jne    L51
  mov    %rdx,%rax
  and    $0xfffffffffffffff0,%rax
  test   $0xf,%dl
  je     L10
L131:
  lea    0x1(%rax),%rcx
  mov    %al,(%rdi,%rax,1)
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0x2(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0x3(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0x4(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0x5(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0x6(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0x7(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0x8(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0x9(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0xa(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0xb(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0xc(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  mov    %cl,(%rdi,%rcx,1)
  lea    0xd(%rax),%rcx
  cmp    %rcx,%rdx
  jbe    L178
  add    $0xe,%rax
  mov    %cl,(%rdi,%rcx,1)
  cmp    %rax,%rdx
  jbe    L178
  mov    %al,(%rdi,%rax,1)
L178:
  ret
L14:
  xor    %eax,%eax
  jmp    L131
L10:
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D13
type_infered: byte[16]
name: disassemble_data
arguments: data_label: D43
type_infered: byte[16]
name: disassemble_data
arguments: data_label: D46
type_infered: byte[16]
name: disassemble_data
arguments: data_label: D49
type_infered: byte[16]
name: disassemble_data
arguments: data_label: D52
type_infered: byte[16]
name: disassemble_data
arguments: data_label: D61
type_infered: byte[16]
name: disassemble_data
arguments: data_label: D51
type_infered: byte[16]
name: disassemble_data
arguments: data_label: D17
type_infered: byte[16]
name: disassemble_data
arguments: data_label: D78
type_infered: byte[16]
name: disassemble_data
arguments: data_label: D60
type_infered: byte[16]

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

tool: {"D43": [0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D46": [0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D49": [0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D52": [0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D61": [0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D51": [0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D17": [0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D78": [0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

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

assistant: ```c
void fill(unsigned char *buffer, const size_t n) {
  for (size_t i = 0; i < n; ++i) {
    buffer[i] = i & 0xFF;
  }
}
```