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

```asm
<test_note_to_int>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D88(%rip),%rax
  mov    %rax,%rdi
  call   <start_test@plt>
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  test   %eax,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D104(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x2,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D133(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x2,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D65(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x4,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x5,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D95(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x7,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D100(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x9,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0xa,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D85(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0xa,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D139(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0xb,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D46(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0xb,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D90(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x8,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D79(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x4,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D99(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x1,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D172(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  test   %eax,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D108(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x8,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  lea    D81(%rip),%rax
  mov    %rax,%rdi
  call   <str_to_note@plt>
  mov    %eax,%edi
  call   <note_to_int@plt>
  cmp    $0x3,%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <end_test@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D88
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D21
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D104
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D133
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D65
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D35
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D95
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D100
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D44
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D85
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D139
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D46
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D90
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D79
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D99
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D172
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D108
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D81
type_guessed: string

tool: D88: note_to_int

tool: D21: C

tool: D104: C##

tool: D133: D

tool: D65: E

tool: D35: F

tool: D95: G

tool: D100: A

tool: D44: A#

tool: D85: Bb

tool: D139: B

tool: D46: Cb

tool: D90: Cbbbb

tool: D79: Cbbbbbbbb

tool: D99: Cbbbbbbbbbbb

tool: D172: Cbbbbbbbbbbbb

tool: D108: Cbbbbbbbbbbbbbbbb

tool: D81: Bbbbbbbbb

assistant: ```c
void test_note_to_int() {
  start_test("note_to_int");
  assert(note_to_int(str_to_note("C")) == 0);
  assert(note_to_int(str_to_note("C##")) == 2);
  assert(note_to_int(str_to_note("D")) == 2);
  assert(note_to_int(str_to_note("E")) == 4);
  assert(note_to_int(str_to_note("F")) == 5);
  assert(note_to_int(str_to_note("G")) == 7);
  assert(note_to_int(str_to_note("A")) == 9);
  assert(note_to_int(str_to_note("A#")) == 10);
  assert(note_to_int(str_to_note("Bb")) == 10);
  assert(note_to_int(str_to_note("B")) == 11);
  assert(note_to_int(str_to_note("Cb")) == 11);
  assert(note_to_int(str_to_note("Cbbbb")) == 8);
  assert(note_to_int(str_to_note("Cbbbbbbbb")) == 4);
  assert(note_to_int(str_to_note("Cbbbbbbbbbbb")) == 1);
  assert(note_to_int(str_to_note("Cbbbbbbbbbbbb")) == 0);
  assert(note_to_int(str_to_note("Cbbbbbbbbbbbbbbbb")) == 8);
  assert(note_to_int(str_to_note("Bbbbbbbbb")) == 3);
  end_test();
}
```