user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<plot8>:
  endbr64
  pxor   %xmm0,%xmm0
  movd   %edi,%xmm2
  mov    %rdx,%r8
  movslq %esi,%rsi
  sub    $0xd8,%rsp
  movdqa D42(%rip),%xmm1
  xor    %edx,%edx
  mov    %fs:0x28,%rax
  mov    %rax,0xc8(%rsp)
  xor    %eax,%eax
  movaps %xmm0,(%rsp)
  mov    D54(%rip),%rax
  mov    %rsp,%r9
  movdqa D64(%rip),%xmm0
  movl   $0x6,0x58(%rsp)
  mov    %rax,0x50(%rsp)
  lea    0x3(%rdi),%eax
  movaps %xmm0,0x10(%rsp)
  movdqa D78(%rip),%xmm0
  mov    %eax,0xb0(%rsp)
  lea    0x4(%rdi),%eax
  add    $0x5,%edi
  movaps %xmm0,0x20(%rsp)
  movdqa D99(%rip),%xmm0
  mov    %eax,0xb4(%rsp)
  movaps %xmm0,0x30(%rsp)
  movdqa D92(%rip),%xmm0
  mov    %edi,0xb8(%rsp)
  lea    0x60(%rsp),%rdi
  movaps %xmm0,0x40(%rsp)
  pshufd $0x0,%xmm2,%xmm0
  paddd  %xmm0,%xmm1
  movaps %xmm1,0x60(%rsp)
  movdqa D28(%rip),%xmm1
  paddd  %xmm0,%xmm1
  movaps %xmm1,0x70(%rsp)
  movdqa D5(%rip),%xmm1
  paddd  %xmm0,%xmm1
  movaps %xmm1,0x80(%rsp)
  movdqa D82(%rip),%xmm1
  paddd  %xmm0,%xmm1
  paddd  D68(%rip),%xmm0
  movaps %xmm1,0x90(%rsp)
  movaps %xmm0,0xa0(%rsp)
  nop
L5:
  movslq (%r9,%rdx,1),%rax
  movslq (%rdi,%rdx,1),%rcx
  add    $0x4,%rdx
  imul   %rsi,%rax
  add    %r8,%rax
  movb   $0x38,(%rax,%rcx,1)
  cmp    $0x5c,%rdx
  jne    L5
  mov    0xc8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L11
  add    $0xd8,%rsp
  ret
L11:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D42
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D54
type_guessed: byte[8]
name: extract_symbolic_data
arguments: label: D64
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D78
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D99
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D92
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D28
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D5
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D82
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D68
type_guessed: byte[16]

tool: {"D42": [0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00]}

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

tool: {"D64": [0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00]}

tool: {"D78": [0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00]}

tool: {"D99": [0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00]}

tool: {"D92": [0x05,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00]}

tool: {"D28": [0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D5": [0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00]}

tool: {"D82": [0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00]}

tool: {"D68": [0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00]}

assistant: ```c
void plot8(int posicao, int colunas, char matriz[7][colunas]) {
  int cx = 0;
  int cy = 0;
  int p = posicao;
  int x[] = {0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 6, 6};
  int y[] = {p + 1, p + 2, p + 3, p + 4, p + 5, p + 0, p + 6, p + 0, p + 6, p + 1, p + 2, p + 3, p + 4, p + 5, p + 0, p + 6, p + 0, p + 6, p + 1, p + 2, p + 3, p + 4, p + 5};
  int points = sizeof(x) / sizeof(int);
  for (cx = 0; cx < points; ++cx) {
    matriz[x[cx]][y[cx]] = '8';
  }
}
```