user: What is the c source code of the assembly code below?

```asm
<main>:
  endbr64
  push   %r15
  pxor   %xmm0,%xmm0
  lea    D57(%rip),%rdi
  push   %r14
  xor    %r14d,%r14d
  push   %r13
  xor    %r13d,%r13d
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  lea    0x10(%rsp),%rbx
  movl   $0x0,0x20(%rsp)
  mov    %rbx,%rsi
  movaps %xmm0,0x10(%rsp)
  mov    %rbx,%r12
  call   <scanf@plt>
  movl   $0x0,0xc(%rsp)
  jmp    L186
  nopw   0x0(%rax,%rax,1)
L48:
  cmpb   $0x2d,(%r12)
  je     L162
L97:
  add    $0x1,%r13d
  add    $0x1,%r12
L186:
  mov    %rbx,%rdi
  call   <strlen@plt>
  cmp    %r13d,%eax
  jle    L84
  cmpl   $0x2,0xc(%rsp)
  jne    L48
  movsbl -0x1(%r12),%eax
  cmp    $0x2d,%al
  je     L83
  mov    %r12,%rdx
L23:
  lea    (%r14,%r14,4),%ecx
  add    $0x1,%rdx
  lea    -0x30(%rax,%rcx,2),%r14d
  movsbl -0x1(%rdx),%eax
  cmp    $0x2d,%al
  jne    L23
L83:
  cmpb   $0x2d,(%r12)
  movl   $0x3,0xc(%rsp)
  jne    L97
  nopl   0x0(%rax)
L162:
  addl   $0x1,0xc(%rsp)
  mov    %r12,%rbp
  mov    %r13d,%r15d
  jmp    L61
  nopl   (%rax)
L28:
  movzbl 0x0(%rbp),%eax
  add    $0x1,%r15d
  mov    %al,-0x1(%rbp)
L61:
  mov    %rbx,%rdi
  add    $0x1,%rbp
  call   <strlen@plt>
  cmp    %r15d,%eax
  jg     L28
  jmp    L97
  cs nopw 0x0(%rax,%rax,1)
L84:
  mov    %rbx,%rdi
  xor    %r13d,%r13d
  call   <strlen@plt>
  cmpb   $0x39,0x10(%rsp)
  mov    %eax,%r12d
  je     L267
  cmpb   $0x37,0x11(%rsp)
  je     L267
  movzbl 0x12(%rsp),%eax
  xor    %r13d,%r13d
  sub    $0x38,%eax
  cmp    $0x1,%al
  seta   %r13b
L267:
  xor    %r15d,%r15d
  xor    %ebp,%ebp
  jmp    L108
  nopl   0x0(%rax)
L51:
  movsbl (%rbx,%r15,1),%eax
  add    $0x2,%r15
  lea    -0x30(%rbp,%rax,1),%ebp
L108:
  mov    %rbx,%rdi
  call   <strlen@plt>
  sub    $0x1,%eax
  cmp    %r15d,%eax
  jg     L51
  mov    $0x1,%r15d
  jmp    L265
  nopl   (%rax)
L146:
  movsbl (%rbx,%r15,1),%eax
  add    $0x2,%r15
  lea    -0x90(%rax,%rax,2),%eax
  add    %eax,%ebp
L265:
  mov    %rbx,%rdi
  call   <strlen@plt>
  sub    $0x1,%eax
  cmp    %r15d,%eax
  jg     L146
  movslq %ebp,%rax
  mov    %ebp,%edx
  imul   $0x66666667,%rax,%rax
  sar    $0x1f,%edx
  sar    $0x22,%rax
  sub    %edx,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  sub    %ebp,%eax
  lea    0xa(%rax),%edx
  movsbl 0x1c(%rsp),%eax
  sub    $0x30,%eax
  cmp    %eax,%edx
  je     L266
L175:
  lea    D39(%rip),%rdi
  call   <printf@plt>
L254:
  mov    0x28(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L15
  add    $0x38,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L266:
  xor    %eax,%eax
  cmp    $0xd,%r12d
  setne  %al
  or     %r13d,%eax
  jne    L175
  lea    D60(%rip),%rdi
  call   <printf@plt>
  cmp    $0xd91f,%r14d
  je     L4
  jg     L240
  cmp    $0x1,%r14d
  je     L29
  cmp    $0x1072,%r14d
  jne    L254
  lea    D8(%rip),%rdi
  call   <printf@plt>
  jmp    L254
L240:
  cmp    $0xe3de2,%r14d
  jne    L254
  lea    D59(%rip),%rdi
  call   <printf@plt>
  jmp    L254
L29:
  lea    D66(%rip),%rdi
  call   <printf@plt>
  jmp    L254
L4:
  lea    D51(%rip),%rdi
  call   <printf@plt>
  jmp    L254
L15:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D57
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D39
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D60
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D8
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D59
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D66
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D51
type_guessed: string

tool: D57: %20[^
]

tool: D39: 0

tool: D60: 1

tool: D8: 
FUNimation Productions, Ltd.

tool: D59: 
Bluebridge

tool: D66: 
Pyramid Books

tool: D51: 
Alyson 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;
}
```