user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  movq   $0x0,0x10(%rsp)
  movq   $0x0,0x18(%rsp)
  movl   $0x0,0x20(%rsp)
  lea    0x10(%rsp),%r13
  mov    %r13,%rsi
  lea    D26(%rip),%rdi
  call   <scanf@plt>
  mov    $0x0,%ebp
  movl   $0x0,0xc(%rsp)
  mov    $0x0,%r14d
  mov    %r13,%r15
  jmp    L172
L10:
  movzbl -0x1(%r13),%eax
  cmp    $0x2d,%al
  je     L239
  mov    %r13,%rdx
L99:
  lea    0x0(%rbp,%rbp,4),%ecx
  movsbl %al,%eax
  lea    -0x30(%rax,%rcx,2),%ebp
  add    $0x1,%rdx
  movzbl -0x1(%rdx),%eax
  cmp    $0x2d,%al
  jne    L99
L239:
  movl   $0x3,0xc(%rsp)
  jmp    L60
L62:
  add    $0x1,%r12d
  movzbl (%rbx),%eax
  mov    %al,-0x1(%rbx)
L265:
  mov    %r15,%rdi
  call   <strlen@plt>
  add    $0x1,%rbx
  cmp    %r12d,%eax
  jg     L62
L152:
  add    $0x1,%r14d
  add    $0x1,%r13
L172:
  mov    %r15,%rdi
  call   <strlen@plt>
  cmp    %r14d,%eax
  jle    L175
  cmpl   $0x2,0xc(%rsp)
  je     L10
L60:
  cmpb   $0x2d,0x0(%r13)
  jne    L152
  addl   $0x1,0xc(%rsp)
  mov    %r13,%rbx
  mov    %r14d,%r12d
  jmp    L265
L175:
  lea    0x10(%rsp),%rdi
  call   <strlen@plt>
  cmp    $0xd,%eax
  setne  %r15b
  mov    $0x0,%r14d
  cmpb   $0x39,0x10(%rsp)
  je     L278
  cmpb   $0x37,0x11(%rsp)
  je     L28
  movzbl 0x12(%rsp),%eax
  sub    $0x38,%eax
  cmp    $0x1,%al
  seta   %r14b
  movzbl %r14b,%r14d
L278:
  mov    $0x0,%r12d
  mov    $0x0,%ebx
  lea    0x10(%rsp),%r13
  jmp    L9
L28:
  mov    $0x0,%r14d
  jmp    L278
L59:
  movsbl (%r12,%r13,1),%eax
  lea    -0x30(%rbx,%rax,1),%ebx
  add    $0x2,%r12
L9:
  mov    %r13,%rdi
  call   <strlen@plt>
  sub    $0x1,%eax
  cmp    %r12d,%eax
  jg     L59
  mov    $0x1,%r12d
  lea    0x10(%rsp),%r13
  jmp    L68
L232:
  movsbl (%r12,%r13,1),%eax
  lea    -0x90(%rax,%rax,2),%eax
  add    %eax,%ebx
  add    $0x2,%r12
L68:
  mov    %r13,%rdi
  call   <strlen@plt>
  sub    $0x1,%eax
  cmp    %r12d,%eax
  jg     L232
  movslq %ebx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %ebx,%edx
  sar    $0x1f,%edx
  sub    %edx,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  sub    %ebx,%eax
  lea    0xa(%rax),%edx
  movsbl 0x1c(%rsp),%eax
  sub    $0x30,%eax
  cmp    %eax,%edx
  jne    L220
  or     %r15b,%r14b
  je     L20
L220:
  lea    D69(%rip),%rdi
  call   <printf@plt>
L253:
  mov    0x28(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L114
  mov    $0x0,%eax
  add    $0x38,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L20:
  lea    D21(%rip),%rdi
  call   <printf@plt>
  cmp    $0xd91f,%ebp
  je     L17
  jg     L168
  cmp    $0x1,%ebp
  je     L36
  cmp    $0x1072,%ebp
  jne    L253
  lea    D30(%rip),%rdi
  call   <printf@plt>
  jmp    L253
L168:
  cmp    $0xe3de2,%ebp
  jne    L253
  lea    D29(%rip),%rdi
  call   <printf@plt>
  jmp    L253
L17:
  lea    D32(%rip),%rdi
  call   <printf@plt>
  jmp    L253
L36:
  lea    D2(%rip),%rdi
  call   <printf@plt>
  jmp    L253
L114:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_label: D26
type_guessed: string
name: parse_data
arguments: data_label: D69
type_guessed: string
name: parse_data
arguments: data_label: D21
type_guessed: string
name: parse_data
arguments: data_label: D30
type_guessed: string
name: parse_data
arguments: data_label: D29
type_guessed: string
name: parse_data
arguments: data_label: D32
type_guessed: string
name: parse_data
arguments: data_label: D2
type_guessed: string

tool: D26: %20[^
]

tool: D69: 0

tool: D21: 1

tool: D30: 
FUNimation Productions, Ltd.

tool: D29: 
Bluebridge

tool: D32: 
Alyson Books

tool: D2: 
Pyramid Books

assistant: ```c
int main() {
  char isbn[20] = {0};
  int i, j, a = 0, b = 0, c = 0, d = 0, sum = 0, s = 0, k = 0;
  scanf("%20[^\n]", isbn);
  for (i = 0; i < strlen(isbn); i++) {
    if (d == 2) {
      for (s = i - 1; isbn[s] != '-'; s++)
        k = k * 10 + (isbn[s] - 48);
      d++;
    }
    if (isbn[i] == '-') {
      d++;
      for (j = i; j < strlen(isbn); j++)
        isbn[j] = isbn[j + 1];
    }
  }
  if (strlen(isbn) != 13)
    a = 1;
  if (isbn[0] != '9' && isbn[1] != '7' && isbn[2] != '8' && isbn[2] != '9')
    b = 1;
  for (i = 0; i < strlen(isbn) - 1; i += 2)
    sum += isbn[i] - 48;
  for (i = 1; i < strlen(isbn) - 1; i += 2)
    sum = sum + 3 * (isbn[i] - 48);
  if ((10 - sum % 10) != isbn[12] - 48)
    c = 1;
  if (a == 1 || b == 1 || c == 1)
    printf("0");
  else {
    printf("1");
    switch (k) {
    case 933346:
      printf("\nBluebridge");
      break;
    case 55583:
      printf("\nAlyson Books");
      break;
    case 4210:
      printf("\nFUNimation Productions, Ltd.");
      break;
    case 01:
      printf("\nPyramid Books");
      break;
    }
  }
  return 0;
}
```