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

```asm
<parseMeta>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    %rdi,%rbp
  mov    %rsi,%rbx
  mov    %rsi,%rdi
  call   <eraseTrailingSpaces@plt>
  mov    %rbx,%rsi
  lea    D84(%rip),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L78
L120:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
L78:
  mov    %rbx,%rsi
  lea    D107(%rip),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L178
  mov    %rbp,%rdi
  call   <parseFasta@plt>
  jmp    L120
L178:
  mov    %rbx,%rsi
  lea    D51(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L102
  mov    %rbx,%rsi
  mov    %rbp,%rdi
  call   <parseSequenceRegion@plt>
  jmp    L120
L102:
  mov    %rbx,%rsi
  lea    D44(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L119
  mov    %rbx,%rsi
  mov    %rbp,%rdi
  call   <parseFeatureOntology@plt>
  jmp    L120
L119:
  mov    %rbx,%rsi
  lea    D48(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L84
  mov    %rbx,%rsi
  mov    %rbp,%rdi
  call   <parseAttributeOntology@plt>
  jmp    L120
L84:
  mov    %rbx,%rsi
  lea    D120(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L88
  mov    %rbx,%rsi
  mov    %rbp,%rdi
  call   <parseSourceOntology@plt>
  jmp    L120
L88:
  mov    %rbx,%rsi
  lea    D114(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L91
  mov    %rbx,%rsi
  mov    %rbp,%rdi
  call   <parseSpecies@plt>
  jmp    L120
L91:
  mov    %rbx,%rsi
  lea    D89(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  je     L114
  mov    %rbx,%rsi
  mov    %rbp,%rdi
  call   <parseGenomeBuild@plt>
  jmp    L120
L114:
  mov    %rbx,%rsi
  lea    D71(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  jne    L120
  mov    %rbx,%rsi
  lea    D12(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  jne    L120
  mov    %rbx,%rsi
  lea    D79(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  jne    L120
  mov    %rbx,%rsi
  lea    D115(%rip),%rdi
  call   <startsWithWord@plt>
  test   %rax,%rax
  jne    L120
  mov    %rbx,%rdx
  lea    D108(%rip),%rsi
  mov    %rbp,%rdi
  call   <gff3FileErr@plt>
  jmp    L120
```

tool_calls: name: unpack_data
arguments: data_tag: D84
datatype: string
name: unpack_data
arguments: data_tag: D107
datatype: string
name: unpack_data
arguments: data_tag: D51
datatype: string
name: unpack_data
arguments: data_tag: D44
datatype: string
name: unpack_data
arguments: data_tag: D48
datatype: string
name: unpack_data
arguments: data_tag: D120
datatype: string
name: unpack_data
arguments: data_tag: D114
datatype: string
name: unpack_data
arguments: data_tag: D89
datatype: string
name: unpack_data
arguments: data_tag: D71
datatype: string
name: unpack_data
arguments: data_tag: D12
datatype: string
name: unpack_data
arguments: data_tag: D79
datatype: string
name: unpack_data
arguments: data_tag: D115
datatype: string
name: unpack_data
arguments: data_tag: D108
datatype: string

tool: D84: ###

tool: D107: ##FASTA

tool: D51: ##sequence-region

tool: D44: ##feature-ontology

tool: D48: ##attribute-ontology

tool: D120: ##source-ontology

tool: D114: ##species

tool: D89: ##genome-build

tool: D71: ##gff-spec-version

tool: D12: ##source-version

tool: D79: ##date

tool: D115: ##Type

tool: D108: 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);
}
```