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

```asm
<parseResult>:
  endbr64
  push   %r15
  mov    %rcx,%r9
  push   %r14
  mov    %r8,%r14
  push   %r13
  push   %r12
  push   %rbp
  mov    %rdx,%rbp
  push   %rbx
  mov    %rdi,%rbx
  sub    $0x28,%rsp
  movzbl (%rdi),%edx
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  cmp    $0x23,%dl
  je     L22
  mov    $0x1,%eax
  nop
L112:
  mov    %dl,-0x1(%rsi,%rax,1)
  mov    %eax,%edi
  mov    %rax,%rcx
  add    $0x1,%rax
  movzbl -0x1(%rbx,%rax,1),%edx
  cmp    $0x23,%dl
  jne    L112
  lea    0x1(%rdi),%edx
  lea    0x2(%rdi),%r15d
  add    %rsi,%rcx
  lea    0x3(%rdi),%r12d
  movslq %edx,%rax
  movslq %r15d,%r8
  movslq %r12d,%r13
L115:
  movb   $0xa,(%rcx)
  movb   $0x0,(%rsi,%rax,1)
  movzbl (%rbx,%rax,1),%ecx
  xor    %eax,%eax
  cmp    $0x40,%cl
  je     L13
  lea    0x1(%rdx),%edi
  mov    %cl,0x15(%rsp)
  movslq %edi,%rax
  movzbl (%rbx,%rax,1),%ecx
  mov    $0x1,%eax
  cmp    $0x40,%cl
  je     L111
  lea    0x2(%rdx),%edi
  mov    %cl,0x16(%rsp)
  movslq %edi,%rax
  movzbl (%rbx,%rax,1),%ecx
  mov    $0x2,%eax
  cmp    $0x40,%cl
  je     L111
  mov    %cl,0x17(%rsp)
  lea    0x3(%rdx),%edi
  mov    $0x3,%eax
L111:
  lea    0x1(%rdi),%r15d
  lea    0x2(%rdi),%r12d
  movslq %r15d,%r8
  movslq %r12d,%r13
L13:
  lea    0x15(%rsp),%r10
  mov    %r9,%rdx
  mov    %r8,0x8(%rsp)
  lea    D7(%rip),%rsi
  mov    %r10,%rdi
  mov    %r10,(%rsp)
  movb   $0x0,0x15(%rsp,%rax,1)
  call   <sscanf@plt>
  mov    0x8(%rsp),%r8
  xor    %eax,%eax
  mov    (%rsp),%r10
  lea    D7(%rip),%rsi
  movzbl (%rbx,%r8,1),%edx
  cmp    $0x23,%dl
  je     L31
  lea    0x1(%r15),%edi
  mov    %dl,0x15(%rsp)
  movslq %edi,%rax
  movzbl (%rbx,%rax,1),%edx
  mov    $0x1,%eax
  cmp    $0x23,%dl
  je     L43
  lea    0x2(%r15),%edi
  mov    %dl,0x16(%rsp)
  movslq %edi,%rax
  movzbl (%rbx,%rax,1),%edx
  mov    $0x2,%eax
  cmp    $0x23,%dl
  je     L43
  mov    %dl,0x17(%rsp)
  lea    0x3(%r15),%edi
  mov    $0x3,%eax
L43:
  lea    0x1(%rdi),%r12d
  movslq %r12d,%r13
L31:
  mov    %r14,%rdx
  mov    %r10,%rdi
  movb   $0x0,0x15(%rsp,%rax,1)
  call   <sscanf@plt>
  movzbl (%rbx,%r13,1),%edx
  cmp    $0xa,%dl
  je     L49
  movslq %r12d,%rdi
  mov    $0x1,%eax
  add    %rdi,%rbx
  nopw   0x0(%rax,%rax,1)
L89:
  mov    %dl,-0x1(%rbp,%rax,1)
  mov    %eax,%ecx
  add    $0x1,%rax
  movzbl -0x1(%rbx,%rax,1),%edx
  cmp    $0xa,%dl
  jne    L89
  movslq %ecx,%rax
  add    $0x1,%ecx
  add    %rbp,%rax
  movslq %ecx,%rcx
L84:
  movb   $0xa,(%rax)
  movb   $0x0,0x0(%rbp,%rcx,1)
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L23
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopw   0x0(%rax,%rax,1)
L22:
  mov    %rsi,%rcx
  mov    $0x3,%r13d
  mov    $0x3,%r12d
  mov    $0x2,%r8d
  mov    $0x2,%r15d
  mov    $0x1,%eax
  mov    $0x1,%edx
  jmp    L115
  nopw   0x0(%rax,%rax,1)
L49:
  mov    %rbp,%rax
  mov    $0x1,%ecx
  jmp    L84
L23:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D7
data_type: string

tool: D7: %d

assistant: ```c
void parseResult(char *result, char *teamS, char *teamT, int *scoreS, int *scoreT) {
  int i, j;
  char score[3];
  j = 0;
  for (i = 0; result[i] != '#'; i++)
    teamS[j++] = result[i];
  teamS[j++] = '\n';
  teamS[j] = '\0';
  j = 0;
  for (i = i + 1; result[i] != '@'; i++)
    score[j++] = result[i];
  score[j] = '\0';
  sscanf(score, "%d", scoreS);
  j = 0;
  for (i = i + 1; result[i] != '#'; i++)
    score[j++] = result[i];
  score[j] = '\0';
  sscanf(score, "%d", scoreT);
  j = 0;
  for (i = i + 1; result[i] != '\n'; i++)
    teamT[j++] = result[i];
  teamT[j++] = '\n';
  teamT[j] = '\0';
}
```