user: What is the c source code of the assembly code below:

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  cmpl   $0x6,-0x4(%rbp)
  ja     L18
  mov    -0x4(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D130(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D130(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D29(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D164(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D225(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D85(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D170(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D140(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D52(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D27(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D107(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D59(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D30(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D189(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L18
  lea    D77(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L18
  lea    D145(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L18
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L18
  lea    D48(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L18
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L18
  lea    D136(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D228(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
L18:
  nop
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D29
type_infered: string
name: disassemble_data
arguments: data_label: D164
type_infered: string
name: disassemble_data
arguments: data_label: D225
type_infered: string
name: disassemble_data
arguments: data_label: D85
type_infered: string
name: disassemble_data
arguments: data_label: D170
type_infered: string
name: disassemble_data
arguments: data_label: D140
type_infered: string
name: disassemble_data
arguments: data_label: D52
type_infered: string
name: disassemble_data
arguments: data_label: D3
type_infered: string
name: disassemble_data
arguments: data_label: D27
type_infered: string
name: disassemble_data
arguments: data_label: D107
type_infered: string
name: disassemble_data
arguments: data_label: D59
type_infered: string
name: disassemble_data
arguments: data_label: D30
type_infered: string
name: disassemble_data
arguments: data_label: D13
type_infered: string
name: disassemble_data
arguments: data_label: D189
type_infered: string
name: disassemble_data
arguments: data_label: D77
type_infered: string
name: disassemble_data
arguments: data_label: D145
type_infered: string
name: disassemble_data
arguments: data_label: D28
type_infered: string
name: disassemble_data
arguments: data_label: D48
type_infered: string
name: disassemble_data
arguments: data_label: D21
type_infered: string
name: disassemble_data
arguments: data_label: D136
type_infered: string
name: disassemble_data
arguments: data_label: D228
type_infered: string

tool: D29: ===================== Welcome to use biodiff! =====================


tool: D164:   1. Usage: biodiff -c -a ca1,ca2 -b cb1,cb2 file_A file_B 		   


tool: D225:   2. Usage: biodiff -n -a ca -b cb file_A file_B [sprt] [sprt]     


tool: D85: -------------------------------------------------------------------


tool: D170:   > * [-c] refers to coordinate-based comparation;                 


tool: D140:   > * [-n] refers to name-based comparation;                       


tool: D52:   > * ca1/ca2/cb1/cb2/ca/cb refer to columns you select;           


tool: D3:   > * In [-n] mode you onlu need to select one column;             


tool: D27:   > * In [-c] mode 2 columns separated by ',' are required;        


tool: D107:   > * In [-n] mode two separators are optional (default: tab);     


tool: D59:   > * In [-n] the first separator is linked to file_A;             


tool: D30:   > * In [-n] the second separator is linked to file_B;            


tool: D13:   > * Here 'overlap' is defined as 'totally equal';                


tool: D189: ===================================================================


tool: D77: Usage: biodiff [-c/-n] -a [numbers,] -b [numbers,] file_A file_B


tool: D145: Error: only a single number following [-a] and [-b] is valid


tool: D28: Error: cannot open file_A, please check the file name


tool: D48: Error: cannot open file_B, please check the file name


tool: D21: Error: cannot generate output files due to some reasons...


tool: D136: Error: you should select 2 columns (ex. 3,4), and their order does counts


tool: D228: Warning: only first 2 columns will be calculated if you select 3 or more (ex. 3,4,5)


assistant: ```c
void usage(int option) {
  switch (option) {
  case 0:
    printf("===================== Welcome to use biodiff! =====================\n");
    printf("  1. Usage: biodiff -c -a ca1,ca2 -b cb1,cb2 file_A file_B 		   \n");
    printf("  2. Usage: biodiff -n -a ca -b cb file_A file_B [sprt] [sprt]     \n");
    printf("-------------------------------------------------------------------\n");
    printf("  > * [-c] refers to coordinate-based comparation;                 \n");
    printf("  > * [-n] refers to name-based comparation;                       \n");
    printf("  > * ca1/ca2/cb1/cb2/ca/cb refer to columns you select;           \n");
    printf("  > * In [-n] mode you onlu need to select one column;             \n");
    printf("  > * In [-c] mode 2 columns separated by ',' are required;        \n");
    printf("  > * In [-n] mode two separators are optional (default: tab);     \n");
    printf("  > * In [-n] the first separator is linked to file_A;             \n");
    printf("  > * In [-n] the second separator is linked to file_B;            \n");
    printf("  > * Here 'overlap' is defined as 'totally equal';                \n");
    printf("===================================================================\n");
    break;
  case 1:
    printf("Usage: biodiff [-c/-n] -a [numbers,] -b [numbers,] file_A file_B\n");
    break;
  case 2:
    printf("Error: only a single number following [-a] and [-b] is valid\n");
    break;
  case 3:
    printf("Error: cannot open file_A, please check the file name\n");
    break;
  case 4:
    printf("Error: cannot open file_B, please check the file name\n");
    break;
  case 5:
    printf("Error: cannot generate output files due to some reasons...\n");
    break;
  case 6:
    printf("Error: you should select 2 columns (ex. 3,4), and their order does counts\n");
    printf("Warning: only first 2 columns will be calculated if you select 3 or more (ex. 3,4,5)\n");
    break;
  default:;
  }
}
```