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

```asm
<get_score>:
  endbr64
  mov    %esi,%eax
  movzbl (%rdi),%r8d
  cmp    $0x4f,%sil
  mov    $0x40,%edx
  mov    $0x4f,%esi
  mov    %rdi,%rcx
  movzbl 0x1(%rdi),%edi
  cmovne %esi,%edx
  xor    %esi,%esi
  cmp    %r8b,%al
  sete   %sil
  cmp    %r8b,%dl
  sete   %r8b
  movzbl %r8b,%r8d
  sub    %r8d,%esi
  xor    %r8d,%r8d
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x2(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x3(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x4(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x5(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x6(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x7(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x8(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x9(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0xa(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0xb(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0xc(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0xd(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0xe(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0xf(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x10(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x11(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x12(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x13(%rcx),%edi
  cmp    %dl,%dil
  sete   %r8b
  sub    %r8d,%esi
  cmp    %al,%dil
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x14(%rcx),%esi
  cmp    %dl,%sil
  sete   %r8b
  sub    %r8d,%edi
  cmp    %al,%sil
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x15(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x16(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x17(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x18(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x19(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x1a(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x1b(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x1c(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x1d(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x1e(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x1f(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x20(%rcx),%esi
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  xor    %r8d,%r8d
  movzbl %sil,%esi
  add    %edi,%esi
  movzbl 0x21(%rcx),%edi
  cmp    %dil,%dl
  sete   %r8b
  sub    %r8d,%esi
  cmp    %dil,%al
  sete   %dil
  xor    %r8d,%r8d
  movzbl %dil,%edi
  add    %esi,%edi
  movzbl 0x22(%rcx),%esi
  movzbl 0x23(%rcx),%ecx
  cmp    %sil,%dl
  sete   %r8b
  sub    %r8d,%edi
  cmp    %sil,%al
  sete   %sil
  movzbl %sil,%esi
  add    %edi,%esi
  xor    %edi,%edi
  cmp    %cl,%dl
  sete   %dil
  mov    %esi,%edx
  sub    %edi,%edx
  cmp    %cl,%al
  sete   %al
  movzbl %al,%eax
  add    %edx,%eax
  ret
```

assistant: ```c
int get_score(char board[][6], char player) {
  int score = 0;
  int row = 0;
  int col = 0;
  char opponent = player == 'O' ? '@' : 'O';
  for (row = 0; row < 6; row++)
    for (col = 0; col < 6; col++) {
      score -= board[row][col] == opponent;
      score += board[row][col] == player;
    }
  return score;
}
```