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

```asm
<usage>:
  endbr64
  sub    $0x8,%rsp
  lea    D99(%rip),%rdi
  call   <printf@plt>
  lea    D12(%rip),%rdi
  call   <printf@plt>
  lea    D69(%rip),%rdi
  call   <printf@plt>
  lea    D44(%rip),%rdi
  call   <printf@plt>
  lea    D13(%rip),%rdi
  call   <printf@plt>
  lea    D118(%rip),%rdi
  call   <printf@plt>
  lea    D108(%rip),%rdi
  call   <printf@plt>
  lea    D33(%rip),%rdi
  call   <printf@plt>
  lea    D8(%rip),%rdi
  call   <printf@plt>
  lea    D39(%rip),%rdi
  call   <printf@plt>
  lea    D116(%rip),%rdi
  call   <printf@plt>
  lea    D90(%rip),%rdi
  call   <printf@plt>
  lea    D15(%rip),%rdi
  call   <printf@plt>
  xor    %edi,%edi
  add    $0x8,%rsp
  jmp    1070 <exit@plt>
```

tool_calls: name: parse_data
arguments: data_tag: D99
data_type: string
name: parse_data
arguments: data_tag: D12
data_type: string
name: parse_data
arguments: data_tag: D69
data_type: string
name: parse_data
arguments: data_tag: D44
data_type: string
name: parse_data
arguments: data_tag: D13
data_type: string
name: parse_data
arguments: data_tag: D118
data_type: string
name: parse_data
arguments: data_tag: D108
data_type: string
name: parse_data
arguments: data_tag: D33
data_type: string
name: parse_data
arguments: data_tag: D8
data_type: string
name: parse_data
arguments: data_tag: D39
data_type: string
name: parse_data
arguments: data_tag: D116
data_type: string
name: parse_data
arguments: data_tag: D90
data_type: string
name: parse_data
arguments: data_tag: D15
data_type: string

tool: D99: Usage: susan <in.pgm> <out.pgm> [options]



tool: D12: -s : Smoothing mode (default)


tool: D69: -e : Edges mode


tool: D44: -c : Corners mode



tool: D13: See source code for more information about setting the thresholds


tool: D118: -t <thresh> : Brightness threshold, all modes (default=20)


tool: D108: -d <thresh> : Distance threshold, smoothing mode, (default=4) (use next option instead for flat 3x3 mask)


tool: D33: -3 : Use flat 3x3 mask, edges or smoothing mode


tool: D8: -n : No post-processing on the binary edge map (runs much faster); edges mode


tool: D39: -q : Use faster (and usually stabler) corner mode; edge-like corner suppression not carried out; corners mode


tool: D116: -b : Mark corners/edges with single black points instead of black with white border; corners or edges mode


tool: D90: -p : Output initial enhancement image only; corners or edges mode (default is edges mode)


tool: D15: 
SUSAN Version 2l (C) 1995-1997 Stephen Smith, DRA UK. steve@fmrib.ox.ac.uk


assistant: ```c
usage() {
  printf("Usage: susan <in.pgm> <out.pgm> [options]\n\n");
  printf("-s : Smoothing mode (default)\n");
  printf("-e : Edges mode\n");
  printf("-c : Corners mode\n\n");
  printf("See source code for more information about setting the thresholds\n");
  printf("-t <thresh> : Brightness threshold, all modes (default=20)\n");
  printf("-d <thresh> : Distance threshold, smoothing mode, (default=4) (use next option instead for flat 3x3 mask)\n");
  printf("-3 : Use flat 3x3 mask, edges or smoothing mode\n");
  printf("-n : No post-processing on the binary edge map (runs much faster); edges mode\n");
  printf("-q : Use faster (and usually stabler) corner mode; edge-like corner suppression not carried out; corners mode\n");
  printf("-b : Mark corners/edges with single black points instead of black with white border; corners or edges mode\n");
  printf("-p : Output initial enhancement image only; corners or edges mode (default is edges mode)\n");
  printf("\nSUSAN Version 2l (C) 1995-1997 Stephen Smith, DRA UK. steve@fmrib.ox.ac.uk\n");
  exit(0);
}
```