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

```asm
<io_printhelp>:
  endbr64
  push   %r12
  lea    D76(%rip),%r12
  mov    $0xe,%esi
  mov    $0x4,%edi
  mov    %r12,%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0x5,%edi
  lea    D65(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0x6,%edi
  lea    D28(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0x7,%edi
  lea    D27(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0x8,%edi
  lea    D123(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0x9,%edi
  lea    D102(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0xa,%edi
  lea    D67(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0xb,%edi
  lea    D143(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0xc,%edi
  lea    D9(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0xd,%edi
  lea    D77(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0xe,%edi
  lea    D57(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0xf,%edi
  lea    D84(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0x10,%edi
  lea    D45(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0x11,%edi
  lea    D60(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0x12,%edi
  lea    D74(%rip),%rdx
  call   <mvprintw@plt>
  mov    $0xe,%esi
  mov    $0x13,%edi
  lea    D78(%rip),%rdx
  call   <mvprintw@plt>
  mov    %r12,%rdx
  mov    $0xe,%esi
  pop    %r12
  mov    $0x14,%edi
  jmp    1050 <mvprintw@plt>
```

tool_calls: name: disassemble_data
arguments: data_label: D76
type: string
name: disassemble_data
arguments: data_label: D65
type: string
name: disassemble_data
arguments: data_label: D28
type: string
name: disassemble_data
arguments: data_label: D27
type: string
name: disassemble_data
arguments: data_label: D123
type: string
name: disassemble_data
arguments: data_label: D102
type: string
name: disassemble_data
arguments: data_label: D67
type: string
name: disassemble_data
arguments: data_label: D143
type: string
name: disassemble_data
arguments: data_label: D9
type: string
name: disassemble_data
arguments: data_label: D77
type: string
name: disassemble_data
arguments: data_label: D57
type: string
name: disassemble_data
arguments: data_label: D84
type: string
name: disassemble_data
arguments: data_label: D45
type: string
name: disassemble_data
arguments: data_label: D60
type: string
name: disassemble_data
arguments: data_label: D74
type: string
name: disassemble_data
arguments: data_label: D78
type: string

tool: D76: ##########################

tool: D65: #    C-Settlers Help:    #

tool: D28: # Keys:                  #

tool: D27: #  Arrows move cursor    #

tool: D123: #  b - build settlement  #

tool: D102: #    - builds city if    #

tool: D67: #      settlement exists #

tool: D143: #  r - build a road      #

tool: D9: #  t - trade             #

tool: D77: #  c - access devel card #

tool: D57: #      window            #

tool: D84: #    - cancel trade      #

tool: D45: #  p - pass turn         #

tool: D60: #  q - exit              #

tool: D74: #  h - display this      #

tool: D78: #      message           #

assistant: ```c
void io_printhelp() {
  int x = 14;
  int y = 4;
  mvprintw(y++, x, "##########################");
  mvprintw(y++, x, "#    C-Settlers Help:    #");
  mvprintw(y++, x, "# Keys:                  #");
  mvprintw(y++, x, "#  Arrows move cursor    #");
  mvprintw(y++, x, "#  b - build settlement  #");
  mvprintw(y++, x, "#    - builds city if    #");
  mvprintw(y++, x, "#      settlement exists #");
  mvprintw(y++, x, "#  r - build a road      #");
  mvprintw(y++, x, "#  t - trade             #");
  mvprintw(y++, x, "#  c - access devel card #");
  mvprintw(y++, x, "#      window            #");
  mvprintw(y++, x, "#    - cancel trade      #");
  mvprintw(y++, x, "#  p - pass turn         #");
  mvprintw(y++, x, "#  q - exit              #");
  mvprintw(y++, x, "#  h - display this      #");
  mvprintw(y++, x, "#      message           #");
  mvprintw(y++, x, "##########################");
}
```