user: 请从给定的汇编指令推导出C源代码：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x2a0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x298(%rbp),%rax
  mov    %rax,%rsi
  lea    D29(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    $0x0,%eax
  call   <getchar@plt>
  movl   $0x0,-0x294(%rbp)
  jmp    L72
L13:
  lea    -0x280(%rbp),%rax
  mov    %rax,%rdi
  call   <gets@plt>
  lea    -0x1e0(%rbp),%rax
  mov    %rax,%rdi
  call   <gets@plt>
  lea    -0x280(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,-0x288(%rbp)
  lea    -0x1e0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,-0x284(%rbp)
  lea    -0x1e0(%rbp),%rdx
  lea    -0x280(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L66
  mov    -0x294(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,%esi
  lea    D26(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L44
L66:
  movl   $0x0,-0x28c(%rbp)
  movl   $0x0,-0x290(%rbp)
  jmp    L59
L94:
  mov    -0x290(%rbp),%eax
  cltq
  movzbl -0x280(%rbp,%rax,1),%eax
  cmp    $0x20,%al
  je     L11
  mov    -0x290(%rbp),%eax
  cltq
  movzbl -0x280(%rbp,%rax,1),%edx
  mov    -0x28c(%rbp),%eax
  cltq
  mov    %dl,-0x140(%rbp,%rax,1)
  addl   $0x1,-0x28c(%rbp)
L11:
  addl   $0x1,-0x290(%rbp)
L59:
  mov    -0x290(%rbp),%eax
  cmp    -0x288(%rbp),%eax
  jl     L94
  mov    -0x28c(%rbp),%eax
  cltq
  movb   $0x0,-0x140(%rbp,%rax,1)
  movl   $0x0,-0x28c(%rbp)
  movl   $0x0,-0x290(%rbp)
  jmp    L79
L48:
  mov    -0x290(%rbp),%eax
  cltq
  movzbl -0x1e0(%rbp,%rax,1),%eax
  cmp    $0x20,%al
  je     L38
  mov    -0x290(%rbp),%eax
  cltq
  movzbl -0x1e0(%rbp,%rax,1),%edx
  mov    -0x28c(%rbp),%eax
  cltq
  mov    %dl,-0xa0(%rbp,%rax,1)
  addl   $0x1,-0x28c(%rbp)
L38:
  addl   $0x1,-0x290(%rbp)
L79:
  mov    -0x290(%rbp),%eax
  cmp    -0x284(%rbp),%eax
  jl     L48
  mov    -0x28c(%rbp),%eax
  cltq
  movb   $0x0,-0xa0(%rbp,%rax,1)
  lea    -0x140(%rbp),%rdx
  lea    -0xa0(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L45
  mov    -0x294(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,%esi
  lea    D1(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L44
L45:
  mov    -0x294(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,%esi
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L44:
  addl   $0x1,-0x294(%rbp)
L72:
  mov    -0x298(%rbp),%eax
  cmp    %eax,-0x294(%rbp)
  jl     L13
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L9
  call   <__stack_chk_fail@plt>
L9:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D29
type_infered: string
name: extract_symbolic_data
arguments: tag: D26
type_infered: string
name: extract_symbolic_data
arguments: tag: D1
type_infered: string
name: extract_symbolic_data
arguments: tag: D28
type_infered: string

tool: D29: %d

tool: D26: Case %d: Yes


tool: D1: Case %d: Output Format Error


tool: D28: Case %d: Wrong Answer


assistant: ```c
int main() {
  int n, i, j, k, len1, len2;
  char to[150], jo[150], ao[150], aoj[150];
  scanf("%d", &n);
  getchar();
  for (i = 0; i < n; i++) {
    gets(to);
    gets(jo);
    len1 = strlen(to);
    len2 = strlen(jo);
    if (strcmp(to, jo) == 0) {
      printf("Case %d: Yes\n", i + 1);
    } else {
      k = 0;
      for (j = 0; j < len1; j++) {
        if (to[j] != ' ') {
          ao[k] = to[j];
          k++;
        }
      }
      ao[k] = '\0';
      k = 0;
      for (j = 0; j < len2; j++) {
        if (jo[j] != ' ') {
          aoj[k] = jo[j];
          k++;
        }
      }
      aoj[k] = '\0';
      if (strcmp(aoj, ao) == 0)
        printf("Case %d: Output Format Error\n", i + 1);
      else
        printf("Case %d: Wrong Answer\n", i + 1);
    }
  }
  return 0;
}
```