user: 请从给定的汇编指令推导出C源代码：

```asm
<help>:
  endbr64
  push   %rbp
  lea    D91(%rip),%rdi
  lea    D60(%rip),%rbp
  push   %rbx
  mov    %rsi,%rbx
  sub    $0x8,%rsp
  call   <puts@plt>
  lea    D103(%rip),%rdi
  call   <puts@plt>
  lea    D109(%rip),%rdi
  call   <puts@plt>
  lea    D136(%rip),%rdi
  call   <puts@plt>
  lea    D63(%rip),%rdi
  call   <puts@plt>
  lea    D14(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <puts@plt>
  lea    D143(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <puts@plt>
  lea    D79(%rip),%rdi
  call   <puts@plt>
  mov    (%rbx),%rsi
  lea    D12(%rip),%rdi
  call   <printf@plt>
  mov    (%rbx),%rsi
  lea    D121(%rip),%rdi
  call   <printf@plt>
  mov    (%rbx),%rsi
  lea    D10(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <puts@plt>
  lea    D68(%rip),%rdi
  call   <puts@plt>
  lea    D125(%rip),%rdi
  call   <puts@plt>
  lea    D102(%rip),%rdi
  call   <puts@plt>
  add    $0x8,%rsp
  lea    D62(%rip),%rdi
  pop    %rbx
  pop    %rbp
  jmp    1060 <puts@plt>
```

tool_calls: name: read_data
arguments: data_label: D91
datatype: string
name: read_data
arguments: data_label: D60
datatype: string
name: read_data
arguments: data_label: D103
datatype: string
name: read_data
arguments: data_label: D109
datatype: string
name: read_data
arguments: data_label: D136
datatype: string
name: read_data
arguments: data_label: D63
datatype: string
name: read_data
arguments: data_label: D14
datatype: string
name: read_data
arguments: data_label: D143
datatype: string
name: read_data
arguments: data_label: D79
datatype: string
name: read_data
arguments: data_label: D12
datatype: string
name: read_data
arguments: data_label: D121
datatype: string
name: read_data
arguments: data_label: D10
datatype: string
name: read_data
arguments: data_label: D68
datatype: string
name: read_data
arguments: data_label: D125
datatype: string
name: read_data
arguments: data_label: D102
datatype: string
name: read_data
arguments: data_label: D62
datatype: string

tool: D91: ****************************************************************

tool: 

tool: D103:  * Moravec Point Feature Detector

tool: D109:  * @Author: Gnat TANG

tool: D136:  * @Email: gnat_tang@yeah.net

tool: D63:  * @Date: Wednesday, March 26 2014

tool: D14:  * @Github: https://github.com/district10/homework/2014/Photogrammetry/moravec.cpp

tool: D143:  * How to compile: gcc -std=c99 moravec.c -o moravec -g -O0

tool: D79:  * Usage(3 ways)

tool: D12:  *     [1] %s


tool: D121:  *     [2] %s <raw_img_path> <row> <col> <kernel_size> <threshold>


tool: D10:  *     [3] %s <raw_img_path> <row> <col> <kernel_size> 0 <threshold1> <threshold2> ...


tool: D68:  * For example:

tool: D125:  *       [1]: ./moravec

tool: D102:  *       [2]: ./moravec data/u0367panLeft.raw 887 805 7 30

tool: D62:  *       [3]: ./moravec data/u0367panLeft.raw 887o 805 7 0 20 40 60 80

assistant: ```c
void help(int argc, char **argv) {
  puts("****************************************************************");
  puts(" * Moravec Point Feature Detector");
  puts(" * @Author: Gnat TANG");
  puts(" * @Email: gnat_tang@yeah.net");
  puts(" * @Date: Wednesday, March 26 2014");
  puts(" * @Github: https://github.com/district10/homework/2014/Photogrammetry/moravec.cpp");
  puts("");
  puts(" * How to compile: gcc -std=c99 moravec.c -o moravec -g -O0");
  puts("");
  puts(" * Usage(3 ways)");
  printf(" *     [1] %s\n", argv[0]);
  printf(" *     [2] %s <raw_img_path> <row> <col> <kernel_size> <threshold>\n", argv[0]);
  printf(" *     [3] %s <raw_img_path> <row> <col> <kernel_size> 0 <threshold1> <threshold2> ...\n", argv[0]);
  puts("");
  puts(" * For example:");
  puts(" *       [1]: ./moravec");
  puts(" *       [2]: ./moravec data/u0367panLeft.raw 887 805 7 30");
  puts(" *       [3]: ./moravec data/u0367panLeft.raw 887o 805 7 0 20 40 60 80");
  return;
}
```