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

```asm
<displayBoard>:
  endbr64
  push   %r15
  lea    D77(%rip),%rcx
  push   %r14
  movq   %rcx,%xmm0
  lea    D52(%rip),%rcx
  mov    %esi,%r14d
  push   %r13
  mov    %rdi,%r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xc8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0xb8(%rsp)
  lea    D18(%rip),%rax
  cmp    $0x1,%esi
  movq   %rax,%xmm1
  lea    D48(%rip),%rax
  movq   %rax,%xmm2
  lea    D91(%rip),%rax
  punpcklqdq %xmm1,%xmm0
  movq   %rax,%xmm3
  lea    D162(%rip),%rax
  movaps %xmm0,0x10(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm4
  lea    D35(%rip),%rax
  punpcklqdq %xmm2,%xmm0
  movq   %rax,%xmm5
  lea    D161(%rip),%rax
  movaps %xmm0,0x20(%rsp)
  lea    D86(%rip),%rcx
  movq   %rax,%xmm6
  lea    D189(%rip),%rax
  movq   %rcx,%xmm0
  movq   %rax,%xmm7
  lea    D193(%rip),%rax
  punpcklqdq %xmm3,%xmm0
  movq   %rax,%xmm1
  lea    D159(%rip),%rax
  movaps %xmm0,0x30(%rsp)
  lea    D154(%rip),%rcx
  movq   %rax,%xmm2
  lea    D85(%rip),%rax
  movq   %rcx,%xmm0
  movq   %rax,%xmm3
  sbb    %eax,%eax
  punpcklqdq %xmm4,%xmm0
  and    $0x4,%eax
  lea    D173(%rip),%rcx
  movaps %xmm0,0x40(%rsp)
  add    $0xd,%eax
  cmp    $0x1,%esi
  movq   %rcx,%xmm0
  sbb    %r12d,%r12d
  punpcklqdq %xmm5,%xmm0
  lea    D67(%rip),%rcx
  mov    %eax,0xc(%rsp)
  and    $0x4,%r12d
  movaps %xmm0,0x50(%rsp)
  movq   %rcx,%xmm0
  lea    D79(%rip),%rcx
  add    $0xc,%r12d
  cmp    $0x1,%esi
  punpcklqdq %xmm6,%xmm0
  sbb    %r15d,%r15d
  movaps %xmm0,0x60(%rsp)
  movq   %rcx,%xmm0
  lea    D191(%rip),%rcx
  and    $0x28,%r15d
  punpcklqdq %xmm7,%xmm0
  add    $0x78,%r15d
  cmp    $0x1,%esi
  movaps %xmm0,0x70(%rsp)
  movq   %rcx,%xmm0
  sbb    %ebp,%ebp
  punpcklqdq %xmm1,%xmm0
  lea    D138(%rip),%rcx
  and    $0x46,%ebp
  movaps %xmm0,0x80(%rsp)
  movq   %rcx,%xmm0
  lea    D11(%rip),%rcx
  add    $0x1,%ebp
  cmp    $0x1,%esi
  punpcklqdq %xmm2,%xmm0
  sbb    %eax,%eax
  movaps %xmm0,0x90(%rsp)
  xor    %edx,%edx
  xor    %esi,%esi
  movq   %rcx,%xmm0
  and    $0x96,%eax
  xor    %edi,%edi
  punpcklqdq %xmm3,%xmm0
  add    $0x1,%eax
  movaps %xmm0,0xa0(%rsp)
  mov    %eax,%ebx
  mov    %eax,0x8(%rsp)
  call   <colorRGB@plt>
  mov    %r15d,%ecx
  mov    %r15d,%edx
  mov    %ebp,%esi
  mov    %eax,%r8d
  mov    %ebx,%edi
  xor    %r15d,%r15d
  call   <drawBox@plt>
  lea    0x1(%r12),%eax
  mov    %eax,0x4(%rsp)
  jmp    L55
  nopl   0x0(%rax,%rax,1)
L66:
  cmp    $0x9,%r15
  jbe    L178
  mov    0x8(%rsp),%ebx
  add    0xc(%rsp),%ebp
L178:
  test   %r14d,%r14d
  je     L169
L189:
  mov    0x0(%r13,%r15,4),%eax
  test   %eax,%eax
  je     L76
L152:
  cmp    $0x2,%eax
  je     L112
L126:
  cmp    $0x4,%eax
  je     L124
L91:
  cmp    $0x7,%eax
  jle    L181
  test   %r14d,%r14d
  jne    L48
  mov    $0xff,%edx
  xor    %esi,%esi
  xor    %edi,%edi
L92:
  call   <colorRGB@plt>
  mov    %r12d,%ecx
  mov    %r12d,%edx
  mov    %ebp,%esi
  mov    %eax,%r8d
  mov    %ebx,%edi
  call   <drawBox@plt>
L181:
  add    $0x1,%r15
  add    0x4(%rsp),%ebx
  cmp    $0x64,%r15
  je     L58
L55:
  imul   $0xcccccccd,%r15d,%eax
  mov    %r15d,%edx
  ror    %eax
  cmp    $0x19999999,%eax
  jbe    L66
L172:
  cmp    $0x9,%r15d
  jg     L189
  test   %r14d,%r14d
  jne    L189
  mov    0x60(%rsp,%r15,8),%rdx
  lea    -0xa(%rbp),%esi
  lea    0x5(%rbx),%edi
  call   <drawText@plt>
  mov    0x0(%r13,%r15,4),%eax
  test   %eax,%eax
  jne    L152
L76:
  mov    $0xff,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <colorRGB@plt>
  mov    %r12d,%ecx
  mov    %r12d,%edx
  mov    %ebp,%esi
  mov    %eax,%r8d
  mov    %ebx,%edi
  call   <drawBox@plt>
  mov    0x0(%r13,%r15,4),%eax
  cmp    $0x2,%eax
  jne    L126
L112:
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   <colorRGB@plt>
  mov    %r12d,%ecx
  mov    %r12d,%edx
  mov    %ebp,%esi
  mov    %eax,%r8d
  mov    %ebx,%edi
  call   <drawBox@plt>
  mov    0x0(%r13,%r15,4),%eax
  cmp    $0x4,%eax
  jne    L91
L124:
  xor    %edx,%edx
  xor    %esi,%esi
  mov    $0xff,%edi
  call   <colorRGB@plt>
  mov    %r12d,%ecx
  mov    %r12d,%edx
  mov    %ebp,%esi
  mov    %eax,%r8d
  mov    %ebx,%edi
  call   <drawBox@plt>
  mov    0x0(%r13,%r15,4),%eax
  jmp    L91
  nopl   (%rax)
L169:
  mov    $0xcccccccd,%eax
  lea    0xc(%rbp),%esi
  lea    -0xa(%rbx),%edi
  imul   %rax,%rdx
  shr    $0x23,%rdx
  mov    0x10(%rsp,%rdx,8),%rdx
  call   <drawText@plt>
  jmp    L172
  nopw   0x0(%rax,%rax,1)
L48:
  mov    $0x80,%edx
  mov    $0x80,%esi
  mov    $0x80,%edi
  jmp    L92
L58:
  mov    0xb8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L122
  add    $0xc8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L122:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: data_tag: D77
type_guessed: string
name: disassemble_data
arguments: data_tag: D52
type_guessed: string
name: disassemble_data
arguments: data_tag: D18
type_guessed: string
name: disassemble_data
arguments: data_tag: D48
type_guessed: string
name: disassemble_data
arguments: data_tag: D91
type_guessed: string
name: disassemble_data
arguments: data_tag: D162
type_guessed: string
name: disassemble_data
arguments: data_tag: D35
type_guessed: string
name: disassemble_data
arguments: data_tag: D161
type_guessed: string
name: disassemble_data
arguments: data_tag: D86
type_guessed: string
name: disassemble_data
arguments: data_tag: D189
type_guessed: string
name: disassemble_data
arguments: data_tag: D193
type_guessed: string
name: disassemble_data
arguments: data_tag: D159
type_guessed: string
name: disassemble_data
arguments: data_tag: D154
type_guessed: string
name: disassemble_data
arguments: data_tag: D85
type_guessed: string
name: disassemble_data
arguments: data_tag: D173
type_guessed: string
name: disassemble_data
arguments: data_tag: D67
type_guessed: string
name: disassemble_data
arguments: data_tag: D79
type_guessed: string
name: disassemble_data
arguments: data_tag: D191
type_guessed: string
name: disassemble_data
arguments: data_tag: D138
type_guessed: string
name: disassemble_data
arguments: data_tag: D11
type_guessed: string

tool: D77: A

tool: D52: C

tool: D18: B

tool: D48: D

tool: D91: F

tool: D162: H

tool: D35: J

tool: D161: 1

tool: D86: E

tool: D189: 3

tool: D193: 5

tool: D159: 7

tool: D154: G

tool: D85: 9

tool: D173: I

tool: D67: 0

tool: D79: 2

tool: D191: 4

tool: D138: 6

tool: D11: 8

assistant: ```c
void displayBoard(int board[], int yourBoard) {
  int x = 1;
  int y = 1;
  int dimension = 120;
  int top = 0;
  int left = 0;
  int textWidthSpace = 10;
  const char *cols[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
  const char *rows[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
  if (yourBoard) {
    x = left = 1;
    y = top = 1;
  } else {
    x = left = dimension + 3 * textWidthSpace + 1;
    y = top = dimension - 50 + 1;
    dimension = 160;
  }
  drawBox(x, y, dimension, dimension, colorRGB(0, 0, 0));
  int square = dimension / 10;
  int i = 0;
  for (i = 0; i < 100; ++i) {
    if (i % 10 == 0) {
      if (i > 9) {
        x = left;
        y += square + 1;
      }
      if (!yourBoard)
        drawText(x - textWidthSpace, y + textWidthSpace + textWidthSpace / 4, cols[i / 10]);
    }
    if (i <= 9 && !yourBoard) {
      drawText(x + textWidthSpace / 2, y - textWidthSpace, rows[i]);
    }
    if (board[i] == 0)
      drawBox(x, y, square, square, colorRGB(0, 0, 255));
    if (board[i] == 2)
      drawBox(x, y, square, square, colorRGB(255, 255, 255));
    if (board[i] == 4)
      drawBox(x, y, square, square, colorRGB(255, 0, 0));
    if (board[i] > 7 && yourBoard)
      drawBox(x, y, square, square, colorRGB(128, 128, 128));
    else if (board[i] > 7)
      drawBox(x, y, square, square, colorRGB(0, 0, 255));
    x += square + 1;
  }
}
```