user: Translate the below assembly code into C programming language:

```asm
<outputProgramHelp>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  lea    D156(%rip),%rsi
  call   <fprintf@plt>
  lea    D140(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D221(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D134(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D96(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D110(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D84(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D35(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D52(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D170(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D93(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D28(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D149(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D161(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D82(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D68(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D90(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D56(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D119(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D73(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D23(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D226(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  lea    D31(%rip),%rsi
  mov    %rbx,%rdi
  call   <fprintf@plt>
  pop    %rbx
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D156
type_guessed: string
name: unpack_data
arguments: data_label: D140
type_guessed: string
name: unpack_data
arguments: data_label: D221
type_guessed: string
name: unpack_data
arguments: data_label: D134
type_guessed: string
name: unpack_data
arguments: data_label: D96
type_guessed: string
name: unpack_data
arguments: data_label: D110
type_guessed: string
name: unpack_data
arguments: data_label: D84
type_guessed: string
name: unpack_data
arguments: data_label: D35
type_guessed: string
name: unpack_data
arguments: data_label: D52
type_guessed: string
name: unpack_data
arguments: data_label: D170
type_guessed: string
name: unpack_data
arguments: data_label: D93
type_guessed: string
name: unpack_data
arguments: data_label: D28
type_guessed: string
name: unpack_data
arguments: data_label: D149
type_guessed: string
name: unpack_data
arguments: data_label: D161
type_guessed: string
name: unpack_data
arguments: data_label: D82
type_guessed: string
name: unpack_data
arguments: data_label: D68
type_guessed: string
name: unpack_data
arguments: data_label: D90
type_guessed: string
name: unpack_data
arguments: data_label: D56
type_guessed: string
name: unpack_data
arguments: data_label: D119
type_guessed: string
name: unpack_data
arguments: data_label: D73
type_guessed: string
name: unpack_data
arguments: data_label: D23
type_guessed: string
name: unpack_data
arguments: data_label: D226
type_guessed: string
name: unpack_data
arguments: data_label: D31
type_guessed: string

tool: D156: 
RTL-Wx Weather Data Monitoring Software



tool: D140: This program attempts to collect data from 433Mhz wireless weather sensors


tool: D221: or an Oregon Scientific weather station connected through a serial port.



tool: D134: Commands:


tool: D96:              h  - help (this message)


tool: D110:              a  - Display Action Scheduler Info


tool: D84:              c  - Process configuration file


tool: D35:              d  - Show debugging statistics


tool: D52:              e  - Show energy data (kilowatts) for last 15 mins


tool: D170:              f  - invoke file parser - to replace tags w/data


tool: D93:              i  - Show config info


tool: D28:              l  - clear log file (rtl-wx.log)


tool: D149:              m  - show historical max/min data


tool: D161:              n  - clear historical max/min data


tool: D82:              r  - reset sensor lock codes and clear timeout counts


tool: D68:              s  - Save data snapshot now


tool: D90:              t  - Toggle raw sensor message display mode


tool: D56:              u  - Initiate FTP upload


tool: D119:              v  - (not implemented) Trim CSV files (older entries removed


tool: D73:              w  - Save webcam snapshot


tool: D23:              q  - quit client (server stays running)


tool: D226:             ESC - Kill server (and quit client)


tool: D31:             <Any other key shows current data>


assistant: ```c
void outputProgramHelp(FILE *fd) {
  fprintf(fd, "\nRTL-Wx Weather Data Monitoring Software\n\n");
  fprintf(fd, "This program attempts to collect data from 433Mhz wireless weather sensors\n");
  fprintf(fd, "or an Oregon Scientific weather station connected through a serial port.\n\n");
  fprintf(fd, "Commands:\n");
  fprintf(fd, "             h  - help (this message)\n");
  fprintf(fd, "             a  - Display Action Scheduler Info\n");
  fprintf(fd, "             c  - Process configuration file\n");
  fprintf(fd, "             d  - Show debugging statistics\n");
  fprintf(fd, "             e  - Show energy data (kilowatts) for last 15 mins\n");
  fprintf(fd, "             f  - invoke file parser - to replace tags w/data\n");
  fprintf(fd, "             i  - Show config info\n");
  fprintf(fd, "             l  - clear log file (rtl-wx.log)\n");
  fprintf(fd, "             m  - show historical max/min data\n");
  fprintf(fd, "             n  - clear historical max/min data\n");
  fprintf(fd, "             r  - reset sensor lock codes and clear timeout counts\n");
  fprintf(fd, "             s  - Save data snapshot now\n");
  fprintf(fd, "             t  - Toggle raw sensor message display mode\n");
  fprintf(fd, "             u  - Initiate FTP upload\n");
  fprintf(fd, "             v  - (not implemented) Trim CSV files (older entries removed\n");
  fprintf(fd, "             w  - Save webcam snapshot\n");
  fprintf(fd, "             q  - quit client (server stays running)\n");
  fprintf(fd, "            ESC - Kill server (and quit client)\n");
  fprintf(fd, "            <Any other key shows current data>\n");
}
```