user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<printtopinstructions>:
  endbr64
  sub    $0x8,%rsp
  mov    $0x2a,%esi
  mov    $0x2,%edi
  call   <move@plt>
  lea    D105(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0x3,%edi
  call   <move@plt>
  lea    D101(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0x4,%edi
  call   <move@plt>
  lea    D98(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0x5,%edi
  call   <move@plt>
  lea    D29(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0x6,%edi
  call   <move@plt>
  lea    D47(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0x7,%edi
  call   <move@plt>
  lea    D53(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0x8,%edi
  call   <move@plt>
  lea    D60(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0x9,%edi
  call   <move@plt>
  lea    D89(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0xa,%edi
  call   <move@plt>
  lea    D42(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0xb,%edi
  call   <move@plt>
  lea    D11(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0xc,%edi
  call   <move@plt>
  lea    D26(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0xd,%edi
  call   <move@plt>
  lea    D9(%rip),%rdi
  call   <printw@plt>
  mov    $0x2a,%esi
  mov    $0xe,%edi
  call   <move@plt>
  lea    D12(%rip),%rdi
  call   <printw@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: parse_data
arguments: label: D105
datatype: string
name: parse_data
arguments: label: D101
datatype: string
name: parse_data
arguments: label: D98
datatype: string
name: parse_data
arguments: label: D29
datatype: string
name: parse_data
arguments: label: D47
datatype: string
name: parse_data
arguments: label: D53
datatype: string
name: parse_data
arguments: label: D60
datatype: string
name: parse_data
arguments: label: D89
datatype: string
name: parse_data
arguments: label: D42
datatype: string
name: parse_data
arguments: label: D11
datatype: string
name: parse_data
arguments: label: D26
datatype: string
name: parse_data
arguments: label: D9
datatype: string
name: parse_data
arguments: label: D12
datatype: string

tool: D105: *--------------------------*

tool: D101: |         MOVES            |

tool: D98: |s# = stock to tableau     |

tool: D29: |sf = stock to foundation  |

tool: D47: |t# = talon to tableau     |

tool: D53: |tf = talon to foundation  |

tool: D60: |## = tableau to tableau   |

tool: D89: |#f = tableau to foundation|

tool: D42: |ht = hand to talon        |

tool: D11: |c = toggle card counting  |

tool: D26: |b = present betting info  |

tool: D9: |q = quit to end the game  |

tool: D12: |==========================|

assistant: ```c
void printtopinstructions() {
  move(2, 42);
  printw("*--------------------------*");
  move(2 + 1, 42);
  printw("|         MOVES            |");
  move(2 + 2, 42);
  printw("|s# = stock to tableau     |");
  move(2 + 3, 42);
  printw("|sf = stock to foundation  |");
  move(2 + 4, 42);
  printw("|t# = talon to tableau     |");
  move(2 + 5, 42);
  printw("|tf = talon to foundation  |");
  move(2 + 6, 42);
  printw("|## = tableau to tableau   |");
  move(2 + 7, 42);
  printw("|#f = tableau to foundation|");
  move(2 + 8, 42);
  printw("|ht = hand to talon        |");
  move(2 + 9, 42);
  printw("|c = toggle card counting  |");
  move(2 + 10, 42);
  printw("|b = present betting info  |");
  move(2 + 11, 42);
  printw("|q = quit to end the game  |");
  move(2 + 12, 42);
  printw("|==========================|");
}
```