user: Please show me the C implementation that matches the assembly code listed below:

```asm
<print_mousing_help>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  movl   $0xa,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x2(%rax),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  lea    D92(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x2(%rax),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x2,%eax
  lea    D120(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x4(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x2,%eax
  lea    D84(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x2(%rax),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x4,%eax
  lea    D46(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x2(%rax),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x5,%eax
  lea    D71(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x2(%rax),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x6,%eax
  lea    D37(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x2(%rax),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x8,%eax
  lea    D18(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x2(%rax),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x9,%eax
  lea    D103(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x4(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x4,%eax
  lea    D47(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x4(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x5,%eax
  lea    D106(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x4(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x6,%eax
  lea    D85(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x4(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x8,%eax
  lea    D98(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x4(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    $0x9,%eax
  lea    D74(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <mvprintw@plt>
  nop
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D92
data_type: string
name: disassemble_data
arguments: data_label: D120
data_type: string
name: disassemble_data
arguments: data_label: D84
data_type: string
name: disassemble_data
arguments: data_label: D46
data_type: string
name: disassemble_data
arguments: data_label: D71
data_type: string
name: disassemble_data
arguments: data_label: D37
data_type: string
name: disassemble_data
arguments: data_label: D18
data_type: string
name: disassemble_data
arguments: data_label: D103
data_type: string
name: disassemble_data
arguments: data_label: D47
data_type: string
name: disassemble_data
arguments: data_label: D106
data_type: string
name: disassemble_data
arguments: data_label: D85
data_type: string
name: disassemble_data
arguments: data_label: D98
data_type: string
name: disassemble_data
arguments: data_label: D74
data_type: string

tool: D92:  Help 

tool: D120: Key

tool: D84: Description

tool: D46: h

tool: D71: m

tool: D37: s

tool: D18: a

tool: D103: q

tool: D47: Help page (this)

tool: D106: Mousing

tool: D85: Stats page

tool: D98: About page

tool: D74: Quit

assistant: ```c
void print_mousing_help(int cords[]) {
  int offset = 10;
  mvprintw(cords[1], cords[0] + 2, " Help ");
  mvprintw(cords[1] + 2, cords[0] + 2, "Key");
  mvprintw(cords[1] + 2, cords[0] + offset, "Description");
  mvprintw(cords[1] + 4, cords[0] + 2, "h");
  mvprintw(cords[1] + 5, cords[0] + 2, "m");
  mvprintw(cords[1] + 6, cords[0] + 2, "s");
  mvprintw(cords[1] + 8, cords[0] + 2, "a");
  mvprintw(cords[1] + 9, cords[0] + 2, "q");
  mvprintw(cords[1] + 4, cords[0] + offset, "Help page (this)");
  mvprintw(cords[1] + 5, cords[0] + offset, "Mousing");
  mvprintw(cords[1] + 6, cords[0] + offset, "Stats page");
  mvprintw(cords[1] + 8, cords[0] + offset, "About page");
  mvprintw(cords[1] + 9, cords[0] + offset, "Quit");
}
```