user: Demonstrate the C code that generates the assembly output below:

```asm
<print_sys_cfg_custom_ie_usage>:
  endbr64
  sub    $0x8,%rsp
  lea    D108(%rip),%rdi
  call   <printf@plt>
  lea    D146(%rip),%rdi
  call   <printf@plt>
  lea    D20(%rip),%rdi
  call   <printf@plt>
  lea    D160(%rip),%rdi
  call   <printf@plt>
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D40(%rip),%rdi
  call   <printf@plt>
  lea    D122(%rip),%rdi
  call   <printf@plt>
  lea    D11(%rip),%rdi
  call   <printf@plt>
  lea    D170(%rip),%rdi
  call   <printf@plt>
  lea    D132(%rip),%rdi
  call   <printf@plt>
  lea    D119(%rip),%rdi
  call   <printf@plt>
  lea    D96(%rip),%rdi
  call   <printf@plt>
  lea    D140(%rip),%rdi
  call   <printf@plt>
  lea    D100(%rip),%rdi
  call   <printf@plt>
  lea    D1(%rip),%rdi
  call   <printf@plt>
  lea    D8(%rip),%rdi
  call   <printf@plt>
  lea    D106(%rip),%rdi
  call   <printf@plt>
  lea    D93(%rip),%rdi
  call   <printf@plt>
  lea    D133(%rip),%rdi
  add    $0x8,%rsp
  jmp    1050 <printf@plt>
```

tool_calls: name: read_data
arguments: data_label: D108
type_guessed: string
name: read_data
arguments: data_label: D146
type_guessed: string
name: read_data
arguments: data_label: D20
type_guessed: string
name: read_data
arguments: data_label: D160
type_guessed: string
name: read_data
arguments: data_label: D188
type_guessed: string
name: read_data
arguments: data_label: D40
type_guessed: string
name: read_data
arguments: data_label: D122
type_guessed: string
name: read_data
arguments: data_label: D11
type_guessed: string
name: read_data
arguments: data_label: D170
type_guessed: string
name: read_data
arguments: data_label: D132
type_guessed: string
name: read_data
arguments: data_label: D119
type_guessed: string
name: read_data
arguments: data_label: D96
type_guessed: string
name: read_data
arguments: data_label: D140
type_guessed: string
name: read_data
arguments: data_label: D100
type_guessed: string
name: read_data
arguments: data_label: D1
type_guessed: string
name: read_data
arguments: data_label: D8
type_guessed: string
name: read_data
arguments: data_label: D106
type_guessed: string
name: read_data
arguments: data_label: D93
type_guessed: string
name: read_data
arguments: data_label: D133
type_guessed: string

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

tool: D146: 
         empty - Get all IE settings


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

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

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

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

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

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

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

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

tool: D119: 
              :  Bit 0 - Association request.

tool: D96: 
              :  Bit 1 - Association response.

tool: D140: 
              :  Bit 2 - Reassociation request.

tool: D100: 
              :  Bit 3 - Reassociation response.

tool: D1: 
              :  Bit 4 - Probe request.

tool: D8: 
              :  Bit 5 - Probe response.

tool: D106: 
              :  Bit 8 - Beacon.

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

tool: D133: 
         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;
}
```