user: 这段汇编代码用C语言表示是什么样的?

```asm
<draw_grid>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  mov    %esi,-0x8(%rbp)
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D81(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D44(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D44(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D44(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D141(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x8(%rbp),%ecx
  lea    D81(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x4(%rbp),%eax
  lea    0x2(%rax),%ecx
  mov    -0x8(%rbp),%eax
  lea    D158(%rip),%rdx
  mov    %eax,%esi
  mov    %ecx,%edi
  call   <mvprintw@plt>
  nop
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D81
datatype: string
name: extract_symbolic_data
arguments: data_tag: D141
datatype: string
name: extract_symbolic_data
arguments: data_tag: D44
datatype: string
name: extract_symbolic_data
arguments: data_tag: D158
datatype: string

tool: D81: #####################################

tool: D141: #        |        |        |        #

tool: D44: #-----------------------------------#

tool: D158: Control: wasd  Exit: q

assistant: ```c
void draw_grid(int y, int x) {
  mvprintw(y++, x, "#####################################");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#-----------------------------------#");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#-----------------------------------#");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#-----------------------------------#");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#        |        |        |        #");
  mvprintw(y++, x, "#####################################");
  mvprintw(y + 2, x, "Control: wasd  Exit: q");
}
```