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

```asm
<print_sys_cfg_custom_ie_usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D142(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D14(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D168(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D130(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D67(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D117(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D148(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D93(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D145(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D167(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D39(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D68(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D173(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D97(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D73(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D135(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D149(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D142
data_type: string
name: extract_symbolic_data
arguments: tag: D14
data_type: string
name: extract_symbolic_data
arguments: tag: D168
data_type: string
name: extract_symbolic_data
arguments: tag: D130
data_type: string
name: extract_symbolic_data
arguments: tag: D67
data_type: string
name: extract_symbolic_data
arguments: tag: D117
data_type: string
name: extract_symbolic_data
arguments: tag: D148
data_type: string
name: extract_symbolic_data
arguments: tag: D93
data_type: string
name: extract_symbolic_data
arguments: tag: D145
data_type: string
name: extract_symbolic_data
arguments: tag: D167
data_type: string
name: extract_symbolic_data
arguments: tag: D39
data_type: string
name: extract_symbolic_data
arguments: tag: D5
data_type: string
name: extract_symbolic_data
arguments: tag: D21
data_type: string
name: extract_symbolic_data
arguments: tag: D68
data_type: string
name: extract_symbolic_data
arguments: tag: D173
data_type: string
name: extract_symbolic_data
arguments: tag: D97
data_type: string
name: extract_symbolic_data
arguments: tag: D73
data_type: string
name: extract_symbolic_data
arguments: tag: D135
data_type: string
name: extract_symbolic_data
arguments: tag: D149
data_type: string

tool: D142: 
Usage : sys_cfg_custom_ie [INDEX] [MASK] [IEBuffer]

tool: D14: 
         empty - Get all IE settings


tool: D168: 
         INDEX:  0 - Get/Set IE index 0 setting

tool: D130: 
                 1 - Get/Set IE index 1 setting

tool: D67: 
                 2 - Get/Set IE index 2 setting

tool: D117: 
                 3 - Get/Set IE index 3 setting

tool: D148: 
                -1 - Append/Delet IE automatically

tool: D93: 
                     Delete will delete the IE from the matching IE buffer

tool: D145: 
                     Append will append the IE to the buffer with the same mask

tool: D167: 
         MASK :  Management subtype mask value as per bit defintions

tool: D39: 
              :  Bit 0 - Association request.

tool: D5: 
              :  Bit 1 - Association response.

tool: D21: 
              :  Bit 2 - Reassociation request.

tool: D68: 
              :  Bit 3 - Reassociation response.

tool: D173: 
              :  Bit 4 - Probe request.

tool: D97: 
              :  Bit 5 - Probe response.

tool: D73: 
              :  Bit 8 - Beacon.

tool: D135: 
         MASK :  MASK = 0 to clear the mask and the IE buffer

tool: D149: 
         IEBuffer :  IE Buffer in hex (max 256 bytes)



assistant: ```c
void print_sys_cfg_custom_ie_usage(void) {
  printf("\nUsage : sys_cfg_custom_ie [INDEX] [MASK] [IEBuffer]");
  printf("\n         empty - Get all IE settings\n");
  printf("\n         INDEX:  0 - Get/Set IE index 0 setting");
  printf("\n                 1 - Get/Set IE index 1 setting");
  printf("\n                 2 - Get/Set IE index 2 setting");
  printf("\n                 3 - Get/Set IE index 3 setting");
  printf("\n                -1 - Append/Delet IE automatically");
  printf("\n                     Delete will delete the IE from the matching IE buffer");
  printf("\n                     Append will append the IE to the buffer with the same mask");
  printf("\n         MASK :  Management subtype mask value as per bit defintions");
  printf("\n              :  Bit 0 - Association request.");
  printf("\n              :  Bit 1 - Association response.");
  printf("\n              :  Bit 2 - Reassociation request.");
  printf("\n              :  Bit 3 - Reassociation response.");
  printf("\n              :  Bit 4 - Probe request.");
  printf("\n              :  Bit 5 - Probe response.");
  printf("\n              :  Bit 8 - Beacon.");
  printf("\n         MASK :  MASK = 0 to clear the mask and the IE buffer");
  printf("\n         IEBuffer :  IE Buffer in hex (max 256 bytes)\n\n");
  return;
}
```