user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<parse_field>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    %rdx,-0x18(%rbp)
  mov    -0x8(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  lea    -0x30(%rax),%edx
  mov    -0x10(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jg     L237
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jns    L82
L237:
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  jmp    L13
L82:
  mov    -0x8(%rbp),%rax
  mov    $0x41,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L220
  mov    -0x18(%rbp),%rax
  movl   $0x0,(%rax)
  jmp    L141
L220:
  mov    -0x8(%rbp),%rax
  mov    $0x42,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L0
  mov    -0x18(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L141
L0:
  mov    -0x8(%rbp),%rax
  mov    $0x43,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L50
  mov    -0x18(%rbp),%rax
  movl   $0x2,(%rax)
  jmp    L141
L50:
  mov    -0x8(%rbp),%rax
  mov    $0x44,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L211
  mov    -0x18(%rbp),%rax
  movl   $0x3,(%rax)
  jmp    L141
L211:
  mov    -0x8(%rbp),%rax
  mov    $0x45,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L32
  mov    -0x18(%rbp),%rax
  movl   $0x4,(%rax)
  jmp    L141
L32:
  mov    -0x8(%rbp),%rax
  mov    $0x46,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L88
  mov    -0x18(%rbp),%rax
  movl   $0x5,(%rax)
  jmp    L141
L88:
  mov    -0x8(%rbp),%rax
  mov    $0x47,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L134
  mov    -0x18(%rbp),%rax
  movl   $0x6,(%rax)
  jmp    L141
L134:
  mov    -0x8(%rbp),%rax
  mov    $0x48,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L78
  mov    -0x18(%rbp),%rax
  movl   $0x7,(%rax)
  jmp    L141
L78:
  mov    -0x8(%rbp),%rax
  mov    $0x49,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L86
  mov    -0x18(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L141
L86:
  mov    -0x8(%rbp),%rax
  mov    $0x4a,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L189
  mov    -0x18(%rbp),%rax
  movl   $0x9,(%rax)
  jmp    L141
L189:
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  jmp    L13
L141:
  mov    $0x1,%eax
L13:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: tag: D5
type_guessed: string

tool: D5: Bledne pole - podaj od A0 do J9.


assistant: ```c
int parse_field(char *bufor, int *x, int *y) {
  *x = bufor[1] - 48;
  if (!(*x < 10 && *x >= 0)) {
    printf("Bledne pole - podaj od A0 do J9.\n");
    return 0;
  }
  if (strstr(bufor, "A") != NULL) {
    *y = 0;
  } else if (strstr(bufor, "B") != NULL) {
    *y = 1;
  } else if (strstr(bufor, "C") != NULL) {
    *y = 2;
  } else if (strstr(bufor, "D") != NULL) {
    *y = 3;
  } else if (strstr(bufor, "E") != NULL) {
    *y = 4;
  } else if (strstr(bufor, "F") != NULL) {
    *y = 5;
  } else if (strstr(bufor, "G") != NULL) {
    *y = 6;
  } else if (strstr(bufor, "H") != NULL) {
    *y = 7;
  } else if (strstr(bufor, "I") != NULL) {
    *y = 8;
  } else if (strstr(bufor, "J") != NULL) {
    *y = 9;
  } else {
    printf("Bledne pole - podaj od A0 do J9.\n");
    return 0;
  }
  return 1;
}
```