user: 请将以下的汇编代码转换成C语言代码:

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rdi,%rbp
  lea    D12(%rip),%rdi
  call   <puts@plt>
  lea    D30(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D76(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rsi
  lea    D70(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D112(%rip),%rdi
  call   <puts@plt>
  lea    D71(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D65(%rip),%rdi
  call   <puts@plt>
  lea    D146(%rip),%rdi
  call   <puts@plt>
  lea    D150(%rip),%rdi
  call   <puts@plt>
  lea    D102(%rip),%rdi
  call   <puts@plt>
  lea    D50(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D108(%rip),%rdi
  call   <puts@plt>
  lea    D27(%rip),%rdi
  call   <puts@plt>
  lea    D52(%rip),%rdi
  call   <puts@plt>
  lea    D149(%rip),%rdi
  call   <puts@plt>
  lea    D33(%rip),%rdi
  pop    %rbp
  jmp    1060 <puts@plt>
```

tool_calls: name: unpack_data
arguments: label: D12
type: string
name: unpack_data
arguments: label: D30
type: string
name: unpack_data
arguments: label: D76
type: string
name: unpack_data
arguments: label: D70
type: string
name: unpack_data
arguments: label: D112
type: string
name: unpack_data
arguments: label: D71
type: string
name: unpack_data
arguments: label: D65
type: string
name: unpack_data
arguments: label: D146
type: string
name: unpack_data
arguments: label: D150
type: string
name: unpack_data
arguments: label: D102
type: string
name: unpack_data
arguments: label: D50
type: string
name: unpack_data
arguments: label: D108
type: string
name: unpack_data
arguments: label: D27
type: string
name: unpack_data
arguments: label: D52
type: string
name: unpack_data
arguments: label: D149
type: string
name: unpack_data
arguments: label: D33
type: string

tool: D12: Point Spread Function Estimation from a Random Target

tool: D30: Copyright M.Delbracio, P.Muse, A.Almansa. 

tool: D76: Version 1.3 - 26 December 2011


tool: D70: Usage: %s [options] <input file> <output file>

Only  PGM 16/8 bits images are supported.



tool: D112: Options:

tool: D71:   -s <number>  The super-resolution factor, positive integer

tool: D65:   (default 4)

tool: D146:   -k <number>  PSF support size (default 4s + 1)

tool: D150:   -o <file>    Estimated PSF save to a 8bits PGM image 

tool: D102:   -p <file>    Noise Pattern PGM image 

tool: D50:   -d <file>    Save the input image with detected pattern marked

tool: D108:   (24bits PPM)

tool: D27:   -t <0,1,2>   Least Squares solver:

tool: D52:                     0 - Least Squares

tool: D149:                     1 - Least Squares + thresholding (default)

tool: D33:                     2 - Non-negative least Squares (slowest)

assistant: ```c
void usage(const char *name) {
  printf("Point Spread Function Estimation from a Random Target\n");
  printf("Copyright M.Delbracio, P.Muse, A.Almansa. ");
  printf("Version 1.3 - 26 December 2011\n\n");
  printf("Usage: %s [options] <input file> <output file>\n\n"
         "Only  PGM 16/8 bits images are supported.\n\n",
         name);
  printf("Options:\n");
  printf("  -s <number>  The super-resolution factor, positive integer");
  printf("  (default 4)\n");
  printf("  -k <number>  PSF support size (default 4s + 1)\n");
  printf("  -o <file>    Estimated PSF save to a 8bits PGM image \n");
  printf("  -p <file>    Noise Pattern PGM image \n");
  printf("  -d <file>    Save the input image with detected pattern marked");
  printf("  (24bits PPM)\n");
  printf("  -t <0,1,2>   Least Squares solver:\n");
  printf("                    0 - Least Squares\n");
  printf("                    1 - Least Squares + thresholding (default)\n");
  printf("                    2 - Non-negative least Squares (slowest)\n");
}
```