user: Converte this assembly snippet into its equivalent C code:

```asm
<doq>:
  endbr64
  sub    $0x8,%rsp
  lea    D172(%rip),%rdi
  call   <printf@plt>
  lea    D32(%rip),%rdi
  call   <printf@plt>
  lea    D71(%rip),%rdi
  call   <printf@plt>
  lea    D185(%rip),%rdi
  call   <printf@plt>
  lea    D88(%rip),%rdi
  call   <printf@plt>
  lea    D139(%rip),%rdi
  call   <printf@plt>
  lea    D149(%rip),%rdi
  call   <printf@plt>
  lea    D85(%rip),%rdi
  call   <printf@plt>
  lea    D121(%rip),%rdi
  call   <printf@plt>
  lea    D48(%rip),%rdi
  call   <printf@plt>
  lea    D90(%rip),%rdi
  call   <printf@plt>
  lea    D0(%rip),%rdi
  call   <printf@plt>
  lea    D151(%rip),%rdi
  call   <printf@plt>
  lea    D100(%rip),%rdi
  call   <printf@plt>
  lea    D65(%rip),%rdi
  call   <printf@plt>
  lea    D117(%rip),%rdi
  call   <printf@plt>
  lea    D113(%rip),%rdi
  call   <printf@plt>
  lea    D50(%rip),%rdi
  call   <printf@plt>
  lea    D196(%rip),%rdi
  call   <printf@plt>
  lea    D167(%rip),%rdi
  call   <printf@plt>
  lea    D42(%rip),%rdi
  call   <printf@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D172
type: string
name: retrieve_data
arguments: data_label: D32
type: string
name: retrieve_data
arguments: data_label: D71
type: string
name: retrieve_data
arguments: data_label: D185
type: string
name: retrieve_data
arguments: data_label: D88
type: string
name: retrieve_data
arguments: data_label: D139
type: string
name: retrieve_data
arguments: data_label: D149
type: string
name: retrieve_data
arguments: data_label: D85
type: string
name: retrieve_data
arguments: data_label: D121
type: string
name: retrieve_data
arguments: data_label: D48
type: string
name: retrieve_data
arguments: data_label: D90
type: string
name: retrieve_data
arguments: data_label: D0
type: string
name: retrieve_data
arguments: data_label: D151
type: string
name: retrieve_data
arguments: data_label: D100
type: string
name: retrieve_data
arguments: data_label: D65
type: string
name: retrieve_data
arguments: data_label: D117
type: string
name: retrieve_data
arguments: data_label: D113
type: string
name: retrieve_data
arguments: data_label: D50
type: string
name: retrieve_data
arguments: data_label: D196
type: string
name: retrieve_data
arguments: data_label: D167
type: string
name: retrieve_data
arguments: data_label: D42
type: string

tool: D172: miriad is a very simple frontend to run miriad commands



tool: D32: ?                     this help


tool: D71: version               display how miriad was compiled


tool: D185: input <file>          process commands from input file


tool: D88: set <key> <value>     set or show a keyword


tool: D139: <key>=<value>         set a keyword


tool: D149: unset <key(s)>        unset keyword(s)


tool: D85: reset                 reset all keywords


tool: D121: task {<task>]         set/show default taskname


tool: D48: inp [<task>]          show settings of keywords to [task]


tool: D90: go [<task>]           run [task]


tool: D0: gob [<task>]          run [task] in background


tool: D151: help [<task>]         help (on a task)


tool: D100: view <task>           edit keyword file for task


tool: D65: save/load [file]      save/load global keyword file


tool: D117: tget/tput [<task>]    save/load [task] keyword file


tool: D113: cd <dir>              change and/or show current directory


tool: D50: exit,end              exit program, save variables


tool: D196: quit                  quit program, do not save variables


tool: D167: <task> [<par(s)>]     any other command is passed to the shell


tool: D42: 


assistant: ```c
void doq() {
  printf("miriad is a very simple frontend to run miriad commands\n\n");
  printf("?                     this help\n");
  printf("version               display how miriad was compiled\n");
  printf("input <file>          process commands from input file\n");
  printf("set <key> <value>     set or show a keyword\n");
  printf("<key>=<value>         set a keyword\n");
  printf("unset <key(s)>        unset keyword(s)\n");
  printf("reset                 reset all keywords\n");
  printf("task {<task>]         set/show default taskname\n");
  printf("inp [<task>]          show settings of keywords to [task]\n");
  printf("go [<task>]           run [task]\n");
  printf("gob [<task>]          run [task] in background\n");
  printf("help [<task>]         help (on a task)\n");
  printf("view <task>           edit keyword file for task\n");
  printf("save/load [file]      save/load global keyword file\n");
  printf("tget/tput [<task>]    save/load [task] keyword file\n");
  printf("cd <dir>              change and/or show current directory\n");
  printf("exit,end              exit program, save variables\n");
  printf("quit                  quit program, do not save variables\n");
  printf("<task> [<par(s)>]     any other command is passed to the shell\n");
  printf("\n");
}
```