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

```asm
<help>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D178(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D160(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D202(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D23(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D194(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D288(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D214(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D148(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D295(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D81(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D220(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D109(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D156(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D121(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D17(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D89(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D299(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D99(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D104(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D6(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D217(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D284(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D77(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D304(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D114(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D275(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D48(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D178
data_type: string
name: retrieve_data
arguments: data_tag: D160
data_type: string
name: retrieve_data
arguments: data_tag: D202
data_type: string
name: retrieve_data
arguments: data_tag: D23
data_type: string
name: retrieve_data
arguments: data_tag: D194
data_type: string
name: retrieve_data
arguments: data_tag: D288
data_type: string
name: retrieve_data
arguments: data_tag: D49
data_type: string
name: retrieve_data
arguments: data_tag: D214
data_type: string
name: retrieve_data
arguments: data_tag: D148
data_type: string
name: retrieve_data
arguments: data_tag: D295
data_type: string
name: retrieve_data
arguments: data_tag: D81
data_type: string
name: retrieve_data
arguments: data_tag: D220
data_type: string
name: retrieve_data
arguments: data_tag: D109
data_type: string
name: retrieve_data
arguments: data_tag: D35
data_type: string
name: retrieve_data
arguments: data_tag: D156
data_type: string
name: retrieve_data
arguments: data_tag: D121
data_type: string
name: retrieve_data
arguments: data_tag: D7
data_type: string
name: retrieve_data
arguments: data_tag: D17
data_type: string
name: retrieve_data
arguments: data_tag: D89
data_type: string
name: retrieve_data
arguments: data_tag: D299
data_type: string
name: retrieve_data
arguments: data_tag: D99
data_type: string
name: retrieve_data
arguments: data_tag: D128
data_type: string
name: retrieve_data
arguments: data_tag: D104
data_type: string
name: retrieve_data
arguments: data_tag: D6
data_type: string
name: retrieve_data
arguments: data_tag: D217
data_type: string
name: retrieve_data
arguments: data_tag: D284
data_type: string
name: retrieve_data
arguments: data_tag: D77
data_type: string
name: retrieve_data
arguments: data_tag: D304
data_type: string
name: retrieve_data
arguments: data_tag: D114
data_type: string
name: retrieve_data
arguments: data_tag: D275
data_type: string
name: retrieve_data
arguments: data_tag: D48
data_type: string

tool: D178: braa 0.83 - (c) by Mateusz 'mteg' Golicz <mtg@elsat.net.pl> and contributors, 2003 - 2015


tool: D160: usage: braa [options] [query1] [query2] ...


tool: D202:   -h        Show this help.


tool: D23:   -2        Claim to be a SNMP2C agent.


tool: D194:   -v        Show short summary after doing all queries.


tool: D288:   -x        Hexdump octet-strings


tool: D49:   -t 
    Wait 
 seconds for responses.


tool: D214:   -d 
    Wait 
 microseconds after sending each packet.


tool: D148:   -w 
    Wait 
 microseconds after sending a group of query packets.


tool: D295:   -p 
    Wait 
 miliseconds between subsequent passes.


tool: D81:   -f <file> Load queries from file <file> (one by line).


tool: D220:   -a <time> Quit after <time> seconds, independent on what happens.


tool: D109:   -r <rc>   Retry count (default: 3).


tool: D35: 


tool: D156: Query format:


tool: D121:   GET:   [community@]iprange[:port]:oid[/id]


tool: D7:   WALK:  [community@]iprange[:port]:oid.*[/id]


tool: D17:   SET:   [community@]iprange[:port]:oid=value[/id]


tool: D89: 
Examples:


tool: D299:          public@10.253.101.1:161:.1.3.6.*


tool: D99:          10.253.101.1-10.253.101.255:.1.3.6.1.2.1.1.4.0=sme


tool: D128:          10.253.101.1:.1.3.6.1.2.1.1.1.0/description


tool: D104: 
It is also possible to specify multiple queries at once:


tool: D6:          10.253.101.1-10.253.101.255:.1.3.6.1.2.1.1.4.0=sme,.1.3.6.*


tool: D217:          (Will set .1.3.6.1.2.1.1.4.0 to 'me' and do a walk starting from .1.3.6)


tool: D284: 

Values for SET queries have to be prepended with a character specifying the value type:


tool: D77:   i      is INTEGER


tool: D304:   a      is IPADDRESS


tool: D114:   s      is OCTET STRING


tool: D275:   o      is OBJECT IDENTIFIER


tool: D48: If the type specifier is missing, the value type is auto-detected


assistant: ```c
void help(void) {
  printf("braa 0.83 - (c) by Mateusz 'mteg' Golicz <mtg@elsat.net.pl> and contributors, 2003 - 2015\n");
  printf("usage: braa [options] [query1] [query2] ...\n");
  printf("  -h        Show this help.\n");
  printf("  -2        Claim to be a SNMP2C agent.\n");
  printf("  -v        Show short summary after doing all queries.\n");
  printf("  -x        Hexdump octet-strings\n");
  printf("  -t 
    Wait 
 seconds for responses.\n");
  printf("  -d 
    Wait 
 microseconds after sending each packet.\n");
  printf("  -w 
    Wait 
 microseconds after sending a group of query packets.\n");
  printf("  -p 
    Wait 
 miliseconds between subsequent passes.\n");
  printf("  -f <file> Load queries from file <file> (one by line).\n");
  printf("  -a <time> Quit after <time> seconds, independent on what happens.\n");
  printf("  -r <rc>   Retry count (default: 3).\n");
  printf("\n");
  printf("Query format:\n");
  printf("  GET:   [community@]iprange[:port]:oid[/id]\n");
  printf("  WALK:  [community@]iprange[:port]:oid.*[/id]\n");
  printf("  SET:   [community@]iprange[:port]:oid=value[/id]\n");
  printf("\nExamples:\n");
  printf("         public@10.253.101.1:161:.1.3.6.*\n");
  printf("         10.253.101.1-10.253.101.255:.1.3.6.1.2.1.1.4.0=sme\n");
  printf("         10.253.101.1:.1.3.6.1.2.1.1.1.0/description\n");
  printf("\nIt is also possible to specify multiple queries at once:\n");
  printf("         10.253.101.1-10.253.101.255:.1.3.6.1.2.1.1.4.0=sme,.1.3.6.*\n");
  printf("         (Will set .1.3.6.1.2.1.1.4.0 to 'me' and do a walk starting from .1.3.6)\n");
  printf("\n\nValues for SET queries have to be prepended with a character specifying the value type:\n");
  printf("  i      is INTEGER\n");
  printf("  a      is IPADDRESS\n");
  printf("  s      is OCTET STRING\n");
  printf("  o      is OBJECT IDENTIFIER\n");
  printf("If the type specifier is missing, the value type is auto-detected\n");
}
```