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

```asm
<check_line>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    %rdx,-0x28(%rbp)
  mov    -0x18(%rbp),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L141
L26:
  addq   $0x1,-0x18(%rbp)
  addq   $0x1,-0x20(%rbp)
L141:
  mov    -0x20(%rbp),%rax
  movzbl (%rax),%eax
  test   %al,%al
  je     L145
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%edx
  mov    -0x20(%rbp),%rax
  movzbl (%rax),%eax
  cmp    %al,%dl
  je     L26
L145:
  mov    -0x20(%rbp),%rax
  movzbl (%rax),%eax
  test   %al,%al
  jne    L71
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    %eax,%edi
  call   <isspace@plt>
  test   %rax,%rax
  jne    L32
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x3d,%al
  jne    L10
  jmp    L32
L158:
  addq   $0x1,-0x18(%rbp)
L32:
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    %eax,%edi
  call   <isspace@plt>
  test   %rax,%rax
  jne    L158
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x3d,%al
  jne    L49
  nop
L85:
  addq   $0x1,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    %eax,%edi
  call   <isspace@plt>
  test   %rax,%rax
  jne    L85
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%eax
  test   %al,%al
  je     L91
  mov    -0x18(%rbp),%rdx
  mov    -0x28(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  cltq
  lea    -0x1(%rax),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  movb   $0x0,(%rax)
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  cltq
  lea    -0x1(%rax),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x5c,%al
  jne    L53
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D8(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  jmp    L53
L71:
  nop
  jmp    L53
L10:
  nop
  jmp    L53
L49:
  nop
  jmp    L53
L91:
  nop
L53:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D8
data_type: string

tool: D8: 
setparams: Error in file make.def. Because of the way in which
           command line arguments are incorporated into the
           executable benchmark, you can't have any continued
           lines in the file make.def, that is, lines ending
           with the character "\". Although it may be ugly, 
           you should be able to reformat without continuation
           lines. The offending line is
  %s


assistant: ```c
void check_line(char *line, char *label, char *val) {
  char *original_line;
  original_line = line;
  while (*label != '\0' && *line == *label) {
    line++;
    label++;
  }
  if (*label != '\0')
    return;
  if (!isspace(*line) && *line != '=')
    return;
  while (isspace(*line))
    line++;
  if (*line != '=')
    return;
  while (isspace(*++line))
    ;
  if (*line == '\0')
    return;
  strcpy(val, line);
  val[strlen(val) - 1] = '\0';
  if (val[strlen(val) - 1] == '\\') {
    printf("\nsetparams: Error in file make.def. Because of the way in which\n           command line arguments are incorporated into the\n           executable benchmark, you can't have any continued\n           lines in the file make.def, that is, lines ending\n           with the character \"\\\". Although it may be ugly, \n           you should be able to reformat without continuation\n           lines. The offending line is\n  %s\n", original_line);
    exit(1);
  }
}
```