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

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rdi,%rbp
  lea    D91(%rip),%rdi
  call   <puts@plt>
  lea    D15(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rsi
  lea    D61(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D153(%rip),%rdi
  call   <puts@plt>
  lea    D128(%rip),%rdi
  call   <puts@plt>
  lea    D104(%rip),%rsi
  lea    D150(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D110(%rip),%rdi
  call   <puts@plt>
  lea    D143(%rip),%rdi
  call   <puts@plt>
  lea    D105(%rip),%rdi
  call   <puts@plt>
  lea    D138(%rip),%rdi
  call   <puts@plt>
  lea    D25(%rip),%rdi
  call   <puts@plt>
  lea    D168(%rip),%rdi
  call   <puts@plt>
  lea    D103(%rip),%rdi
  call   <puts@plt>
  lea    D67(%rip),%rdi
  call   <puts@plt>
  lea    D106(%rip),%rdi
  call   <puts@plt>
  lea    D38(%rip),%rdi
  call   <puts@plt>
  mov    $0x1,%eax
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D91
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D15
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D61
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D153
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D128
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D104
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D150
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D110
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D143
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D105
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D138
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D25
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D168
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D103
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D67
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D106
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D38
type_infered: string

tool: D91: cmail-admin-permissions - Manage permissions for the cmail web panel

tool: D15: This program is part of the cmail administration toolkit

tool: D61: Usage: %s <options> <commands> <arguments>



tool: D153: Basic options:

tool: D128: 	--verbosity, -v			Set verbosity level (0 - 4)

tool: D104: /etc/cmail/databases/master.db3

tool: D150: 	--dbpath, -d <dbpath>		Set master database path (Default: %s)


tool: D110: 	--help, -h			Display this help message

tool: D143: Commands:

tool: D105: 	grant <user> <permissions>			Grant permissions to a user

tool: D138: 	revoke <user> [<permission> [, <permission>]] 	revokes the given permission or all permissions if no permission is given from the user

tool: D25: 	list [<user>]				 list all permissions or permissions of the given user (or like the user expression)

tool: D168: 	rlist <permission>				 list all users like the given permission

tool: D103: 	delete user <delete>				 delete the user delegation from user

tool: D67: 	delete expression <delete>			 delete the address space delegation from user

tool: D106: 	delegate user <user> <delegated>	 delegates a user to the given <user>

tool: D38: 	delegate address <user> <expression>	 delegates the given address space to the user

assistant: ```c
int usage(char *fn) {
  printf("cmail-admin-permissions - Manage permissions for the cmail web panel\n");
  printf("This program is part of the cmail administration toolkit\n");
  printf("Usage: %s <options> <commands> <arguments>\n\n", fn);
  printf("Basic options:\n");
  printf("\t--verbosity, -v\t\t\tSet verbosity level (0 - 4)\n");
  printf("\t--dbpath, -d <dbpath>\t\tSet master database path (Default: %s)\n", "/etc/cmail/databases/master.db3");
  printf("\t--help, -h\t\t\tDisplay this help message\n");
  printf("Commands:\n");
  printf("\tgrant <user> <permissions>\t\t\tGrant permissions to a user\n");
  printf("\trevoke <user> [<permission> [, <permission>]] \trevokes the given permission or all permissions if no permission is given from the user\n");
  printf("\tlist [<user>]\t\t\t\t list all permissions or permissions of the given user (or like the user expression)\n");
  printf("\trlist <permission>\t\t\t\t list all users like the given permission\n");
  printf("\tdelete user <delete>\t\t\t\t delete the user delegation from user\n");
  printf("\tdelete expression <delete>\t\t\t delete the address space delegation from user\n");
  printf("\tdelegate user <user> <delegated>\t delegates a user to the given <user>\n");
  printf("\tdelegate address <user> <expression>\t delegates the given address space to the user\n");
  return 1;
}
```