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

```asm
<draw_grid>:
  endbr64
  push   %r14
  lea    D39(%rip),%r14
  push   %r13
  mov    %r14,%rdx
  lea    D4(%rip),%r13
  push   %r12
  lea    D20(%rip),%r12
  push   %rbp
  mov    %esi,%ebp
  push   %rbx
  mov    %edi,%ebx
  call   <mvprintw@plt>
  lea    0x1(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x2(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x3(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x4(%rbx),%edi
  mov    %r13,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x5(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x6(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x7(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x8(%rbx),%edi
  mov    %r13,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x9(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0xa(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0xb(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0xc(%rbx),%edi
  mov    %r13,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0xd(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0xe(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0xf(%rbx),%edi
  mov    %r12,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x10(%rbx),%edi
  mov    %r14,%rdx
  mov    %ebp,%esi
  call   <mvprintw@plt>
  lea    0x13(%rbx),%edi
  mov    %ebp,%esi
  pop    %rbx
  lea    D33(%rip),%rdx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  jmp    1050 <mvprintw@plt>
```

tool_calls: name: retrieve_data
arguments: label: D39
datatype: string
name: retrieve_data
arguments: label: D4
datatype: string
name: retrieve_data
arguments: label: D20
datatype: string
name: retrieve_data
arguments: label: D33
datatype: string

tool: D39: #####################################

tool: D4: #-----------------------------------#

tool: D20: #        |        |        |        #

tool: D33: 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");
}
```