user: 请将以下的汇编代码转换成C语言代码:

```asm
<displayBoard>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xc8,%rsp
  mov    %rdi,%r12
  mov    %esi,%r15d
  mov    %fs:0x28,%rax
  mov    %rax,0xb8(%rsp)
  xor    %eax,%eax
  lea    D157(%rip),%rax
  mov    %rax,0x10(%rsp)
  lea    D114(%rip),%rax
  mov    %rax,0x18(%rsp)
  lea    D36(%rip),%rax
  mov    %rax,0x20(%rsp)
  lea    D27(%rip),%rax
  mov    %rax,0x28(%rsp)
  lea    D34(%rip),%rax
  mov    %rax,0x30(%rsp)
  lea    D73(%rip),%rax
  mov    %rax,0x38(%rsp)
  lea    D139(%rip),%rax
  mov    %rax,0x40(%rsp)
  lea    D110(%rip),%rax
  mov    %rax,0x48(%rsp)
  lea    D30(%rip),%rax
  mov    %rax,0x50(%rsp)
  lea    D77(%rip),%rax
  mov    %rax,0x58(%rsp)
  lea    D40(%rip),%rax
  mov    %rax,0x60(%rsp)
  lea    D133(%rip),%rax
  mov    %rax,0x68(%rsp)
  lea    D108(%rip),%rax
  mov    %rax,0x70(%rsp)
  lea    D61(%rip),%rax
  mov    %rax,0x78(%rsp)
  lea    D164(%rip),%rax
  mov    %rax,0x80(%rsp)
  lea    D88(%rip),%rax
  mov    %rax,0x88(%rsp)
  lea    D196(%rip),%rax
  mov    %rax,0x90(%rsp)
  lea    D56(%rip),%rax
  mov    %rax,0x98(%rsp)
  lea    D154(%rip),%rax
  mov    %rax,0xa0(%rsp)
  lea    D7(%rip),%rax
  mov    %rax,0xa8(%rsp)
  cmp    $0x1,%esi
  sbb    %r14d,%r14d
  and    $0x28,%r14d
  add    $0x78,%r14d
  cmp    $0x1,%esi
  sbb    %r13d,%r13d
  and    $0x46,%r13d
  add    $0x1,%r13d
  cmp    $0x1,%esi
  sbb    %ebp,%ebp
  and    $0x96,%ebp
  add    $0x1,%ebp
  mov    %ebp,0xc(%rsp)
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <colorRGB@plt>
  mov    %eax,%r8d
  mov    %r14d,%ecx
  mov    %r14d,%edx
  mov    %r13d,%esi
  mov    %ebp,%edi
  call   <drawBox@plt>
  movslq %r14d,%r14
  imul   $0x66666667,%r14,%r14
  sar    $0x22,%r14
  mov    $0x0,%ebx
  lea    0x1(%r14),%eax
  mov    %eax,0x8(%rsp)
  jmp    L188
L64:
  cmp    $0x9,%ebx
  jg     L135
  test   %r15d,%r15d
  jne    L135
  mov    0x60(%rsp,%rbx,8),%rdx
  lea    -0xa(%r13),%esi
  lea    0x5(%rbp),%edi
  call   <drawText@plt>
L135:
  cmpl   $0x0,(%r12,%rbx,4)
  je     L149
L163:
  cmpl   $0x2,(%r12,%rbx,4)
  je     L107
L36:
  cmpl   $0x4,(%r12,%rbx,4)
  je     L184
L38:
  mov    (%r12,%rbx,4),%eax
  test   %r15d,%r15d
  je     L1
  cmp    $0x7,%eax
  jg     L99
L1:
  cmp    $0x7,%eax
  jg     L128
L199:
  add    0x8(%rsp),%ebp
  add    $0x1,%rbx
  cmp    $0x64,%rbx
  je     L168
L188:
  mov    %ebx,%ecx
  movslq %ebx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %ebx,%edx
  sar    $0x1f,%edx
  sub    %edx,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %ebx,%eax
  jne    L64
  cmp    $0x9,%ebx
  jle    L18
  add    0x8(%rsp),%r13d
  mov    0xc(%rsp),%ebp
L18:
  test   %r15d,%r15d
  jne    L135
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  sar    $0x1f,%ecx
  sub    %ecx,%eax
  cltq
  mov    0x10(%rsp,%rax,8),%rdx
  lea    0xc(%r13),%esi
  lea    -0xa(%rbp),%edi
  call   <drawText@plt>
  jmp    L64
L149:
  mov    $0xff,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <colorRGB@plt>
  mov    %eax,%r8d
  mov    %r14d,%ecx
  mov    %r14d,%edx
  mov    %r13d,%esi
  mov    %ebp,%edi
  call   <drawBox@plt>
  jmp    L163
L107:
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   <colorRGB@plt>
  mov    %eax,%r8d
  mov    %r14d,%ecx
  mov    %r14d,%edx
  mov    %r13d,%esi
  mov    %ebp,%edi
  call   <drawBox@plt>
  jmp    L36
L184:
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0xff,%edi
  call   <colorRGB@plt>
  mov    %eax,%r8d
  mov    %r14d,%ecx
  mov    %r14d,%edx
  mov    %r13d,%esi
  mov    %ebp,%edi
  call   <drawBox@plt>
  jmp    L38
L99:
  mov    $0x80,%edx
  mov    $0x80,%esi
  mov    $0x80,%edi
  call   <colorRGB@plt>
  mov    %eax,%r8d
  mov    %r14d,%ecx
  mov    %r14d,%edx
  mov    %r13d,%esi
  mov    %ebp,%edi
  call   <drawBox@plt>
  jmp    L199
L128:
  mov    $0xff,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <colorRGB@plt>
  mov    %eax,%r8d
  mov    %r14d,%ecx
  mov    %r14d,%edx
  mov    %r13d,%esi
  mov    %ebp,%edi
  call   <drawBox@plt>
  jmp    L199
L168:
  mov    0xb8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L164
  add    $0xc8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L164:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: label: D157
type_infered: string
name: read_data
arguments: label: D114
type_infered: string
name: read_data
arguments: label: D36
type_infered: string
name: read_data
arguments: label: D27
type_infered: string
name: read_data
arguments: label: D34
type_infered: string
name: read_data
arguments: label: D73
type_infered: string
name: read_data
arguments: label: D139
type_infered: string
name: read_data
arguments: label: D110
type_infered: string
name: read_data
arguments: label: D30
type_infered: string
name: read_data
arguments: label: D77
type_infered: string
name: read_data
arguments: label: D40
type_infered: string
name: read_data
arguments: label: D133
type_infered: string
name: read_data
arguments: label: D108
type_infered: string
name: read_data
arguments: label: D61
type_infered: string
name: read_data
arguments: label: D164
type_infered: string
name: read_data
arguments: label: D88
type_infered: string
name: read_data
arguments: label: D196
type_infered: string
name: read_data
arguments: label: D56
type_infered: string
name: read_data
arguments: label: D154
type_infered: string
name: read_data
arguments: label: D7
type_infered: string

tool: D157: A

tool: D114: B

tool: D36: C

tool: D27: D

tool: D34: E

tool: D73: F

tool: D139: G

tool: D110: H

tool: D30: I

tool: D77: J

tool: D40: 0

tool: D133: 1

tool: D108: 2

tool: D61: 3

tool: D164: 4

tool: D88: 5

tool: D196: 6

tool: D56: 7

tool: D154: 8

tool: D7: 9

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;
  }
}
```