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

```asm
<main>:
  endbr64
  push   %r13
  push   %r12
  lea    D5(%rip),%r12
  push   %rbp
  mov    %r12,%rdi
  push   %rbx
  xor    %ebx,%ebx
  sub    $0x1b8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x1a8(%rsp)
  xor    %eax,%eax
  lea    0x8(%rsp),%rsi
  lea    0x10(%rsp),%rbp
  call   <scanf@plt>
  mov    0x8(%rsp),%eax
  test   %eax,%eax
  jle    L44
  nopw   0x0(%rax,%rax,1)
L70:
  mov    %rbp,%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  add    $0x1,%ebx
  call   <scanf@plt>
  add    $0x4,%rbp
  cmp    %ebx,0x8(%rsp)
  jg     L70
L44:
  lea    0xc(%rsp),%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  xor    %ebx,%ebx
  call   <scanf@plt>
  mov    0xc(%rsp),%esi
  lea    0xe0(%rsp),%rbp
  test   %esi,%esi
  jle    L91
  nopl   0x0(%rax,%rax,1)
L13:
  mov    %rbp,%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  add    $0x1,%ebx
  call   <scanf@plt>
  mov    0xc(%rsp),%esi
  add    $0x4,%rbp
  cmp    %ebx,%esi
  jg     L13
L91:
  mov    0x8(%rsp),%r11d
  mov    %r11d,%r10d
  sub    %esi,%r10d
  add    $0x1,%r10d
  js     L130
  lea    0x10(%rsp),%r12
  xor    %ebx,%ebx
  lea    D0(%rip),%r13
  mov    %r12,%rbp
  nopw   0x0(%rax,%rax,1)
L5:
  lea    (%rsi,%rbx,1),%r8d
  mov    $0x1,%eax
  xor    %r9d,%r9d
  lea    0xe0(%rsp),%rdi
  test   %esi,%esi
  jle    L74
L67:
  mov    -0x4(%rbp,%rax,4),%ecx
  cmp    %ecx,-0x4(%rdi,%rax,4)
  jne    L36
  add    $0x1,%r9d
L36:
  lea    (%rbx,%rax,1),%edx
  cmp    %edx,%r8d
  setg   %cl
  cmp    %eax,%esi
  setg   %dl
  add    $0x1,%rax
  test   %dl,%cl
  jne    L67
L74:
  cmp    %r9d,%esi
  je     L16
  movslq %r10d,%r10
  cmp    %r10,%r12
  je     L106
  mov    %r11d,%eax
  lea    0x1(%rbx),%edx
  add    $0x4,%rbp
  sub    %esi,%eax
  lea    0x1(%rax),%r10d
  cmp    %ebx,%eax
  jl     L130
  mov    %edx,%ebx
  jmp    L5
L16:
  lea    D19(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L130:
  mov    0x1a8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L139
  add    $0x1b8,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  nopw   0x0(%rax,%rax,1)
L106:
  mov    %r13,%rdi
  xor    %eax,%eax
  add    $0x4,%rbp
  call   <printf@plt>
  mov    0x8(%rsp),%r11d
  mov    0xc(%rsp),%esi
  lea    0x1(%rbx),%edx
  mov    %r11d,%eax
  sub    %esi,%eax
  lea    0x1(%rax),%r10d
  cmp    %eax,%ebx
  jg     L130
  mov    %edx,%ebx
  jmp    L5
L139:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: label: D5
datatype: string
name: retrieve_data
arguments: label: D0
datatype: string
name: retrieve_data
arguments: label: D19
datatype: string

tool: D5: %d

tool: D0: NO

tool: D19: YES

assistant: ```c
int main() {
  int N1, N2, a[50], b[50], k, x, y;
  scanf("%d", &N1);
  for (int i = 0; i < N1; i++) {
    scanf("%d", &a[i]);
  }
  scanf("%d", &N2);
  for (int i = 0; i < N2; i++) {
    scanf("%d", &b[i]);
  }
  for (k = 0; k <= N1 - N2 + 1; k++) {
    int count = 0, x = k, y = 0;
    while ((x < k + N2) && (y <= N2 - 1)) {
      if (a[x] == b[y])
        count++;
      x++;
      y++;
    }
    if (count == N2) {
      printf("YES");
      break;
    } else if ((count != N2) && (a == N1 - N2 + 1))
      printf("NO");
  }
  return 0;
}
```