user: What is the c source code of the assembly code below:

```asm
<printtopinstructions>:
  endbr64
  sub    $0x8,%rsp
  mov    $0x1f,%esi
  mov    $0x2,%edi
  call   <move@plt>
  lea    D53(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0x3,%edi
  call   <move@plt>
  lea    D112(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0x4,%edi
  call   <move@plt>
  lea    D109(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0x5,%edi
  call   <move@plt>
  lea    D68(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0x6,%edi
  call   <move@plt>
  lea    D96(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0x7,%edi
  call   <move@plt>
  lea    D97(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0x8,%edi
  call   <move@plt>
  lea    D52(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0x9,%edi
  call   <move@plt>
  lea    D107(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0xa,%edi
  call   <move@plt>
  lea    D48(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0xb,%edi
  call   <move@plt>
  lea    D110(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0xc,%edi
  call   <move@plt>
  lea    D28(%rip),%rdi
  call   <printw@plt>
  mov    $0x1f,%esi
  mov    $0xd,%edi
  call   <move@plt>
  lea    D29(%rip),%rdi
  call   <printw@plt>
  mov    $0xe,%edi
  mov    $0x1f,%esi
  call   <move@plt>
  lea    D51(%rip),%rdi
  add    $0x8,%rsp
  jmp    1060 <printw@plt>
```

tool_calls: name: retrieve_data
arguments: label: D53
data_type: string
name: retrieve_data
arguments: label: D112
data_type: string
name: retrieve_data
arguments: label: D109
data_type: string
name: retrieve_data
arguments: label: D68
data_type: string
name: retrieve_data
arguments: label: D96
data_type: string
name: retrieve_data
arguments: label: D97
data_type: string
name: retrieve_data
arguments: label: D52
data_type: string
name: retrieve_data
arguments: label: D107
data_type: string
name: retrieve_data
arguments: label: D48
data_type: string
name: retrieve_data
arguments: label: D110
data_type: string
name: retrieve_data
arguments: label: D28
data_type: string
name: retrieve_data
arguments: label: D29
data_type: string
name: retrieve_data
arguments: label: D51
data_type: string

tool: D53: *--------------------------------

tool: D112: |         MOVES                  

tool: D109: |s# = stock to tableau           

tool: D68: |sf = stock to foundation        

tool: D96: |t# = talon to tableau           

tool: D97: |tf = talon to foundation        

tool: D52: |## = tableau to tableau         

tool: D107: |#f = tableau to foundation      

tool: D48: |ht = hand to talon              

tool: D110: |c = toggle card counting        

tool: D28: |b = present betting information 

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

tool: D51: |================================

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