user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<parseMeta>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <eraseTrailingSpaces@plt>
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L94
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D121(%rip),%rax
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L171
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <parseFasta@plt>
  jmp    L94
L171:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D82(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L34
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <parseSequenceRegion@plt>
  jmp    L94
L34:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D75(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L45
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <parseFeatureOntology@plt>
  jmp    L94
L45:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D23(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L50
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <parseAttributeOntology@plt>
  jmp    L94
L50:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D30(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L25
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <parseSourceOntology@plt>
  jmp    L94
L25:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D99(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L39
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <parseSpecies@plt>
  jmp    L94
L39:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L98
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <parseGenomeBuild@plt>
  jmp    L94
L98:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D78(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  jne    L94
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D38(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  jne    L94
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D67(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  jne    L94
  mov    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D51(%rip),%rax
  mov    %rax,%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  jne    L94
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  lea    D0(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <gff3FileErr@plt>
L94:
  nop
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D21
type: string
name: retrieve_data
arguments: tag: D121
type: string
name: retrieve_data
arguments: tag: D82
type: string
name: retrieve_data
arguments: tag: D75
type: string
name: retrieve_data
arguments: tag: D23
type: string
name: retrieve_data
arguments: tag: D30
type: string
name: retrieve_data
arguments: tag: D99
type: string
name: retrieve_data
arguments: tag: D61
type: string
name: retrieve_data
arguments: tag: D78
type: string
name: retrieve_data
arguments: tag: D38
type: string
name: retrieve_data
arguments: tag: D67
type: string
name: retrieve_data
arguments: tag: D51
type: string
name: retrieve_data
arguments: tag: D0
type: string

tool: D21: ###

tool: D121: ##FASTA

tool: D82: ##sequence-region

tool: D75: ##feature-ontology

tool: D23: ##attribute-ontology

tool: D30: ##source-ontology

tool: D99: ##species

tool: D61: ##genome-build

tool: D78: ##gff-spec-version

tool: D38: ##source-version

tool: D67: ##date

tool: D51: ##Type

tool: D0: invalid meta line: %s

assistant: ```c
void parseMeta(struct gff3File *g3f, char *line) {
  eraseTrailingSpaces(line);
  if ((strcmp("###", line) == 0))
    ;
  else if ((strcmp("##FASTA", line) == 0))
    parseFasta(g3f);
  else if (startsWithWord("##sequence-region", line))
    parseSequenceRegion(g3f, line);
  else if (startsWithWord("##feature-ontology", line))
    parseFeatureOntology(g3f, line);
  else if (startsWithWord("##attribute-ontology", line))
    parseAttributeOntology(g3f, line);
  else if (startsWithWord("##source-ontology", line))
    parseSourceOntology(g3f, line);
  else if (startsWithWord("##species", line))
    parseSpecies(g3f, line);
  else if (startsWithWord("##genome-build", line))
    parseGenomeBuild(g3f, line);
  else if (startsWithWord("##gff-spec-version", line) || startsWithWord("##source-version", line) || startsWithWord("##date", line) || startsWithWord("##Type", line))
    ;
  else
    gff3FileErr(g3f, "invalid meta line: %s", line);
}
```