user: Please show me the C implementation that matches the assembly code listed below:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    $0x0,%eax
  call   <test_create_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_get_head_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_get_tail_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_get_element_at_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_is_equal_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_shallow_copy_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_prepend_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_append_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_remove_head_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_remove_middle_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_remove_tail_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_remove_none_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_remove_from_empty_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  call   <test_remove_all_singly_linked_list@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  pop    %rbp
  ret
```

assistant: ```c
int main() {
  assert(test_create_singly_linked_list() == 0);
  assert(test_get_head_singly_linked_list() == 0);
  assert(test_get_tail_singly_linked_list() == 0);
  assert(test_get_element_at_singly_linked_list() == 0);
  assert(test_is_equal_singly_linked_list() == 0);
  assert(test_shallow_copy_singly_linked_list() == 0);
  assert(test_prepend_singly_linked_list() == 0);
  assert(test_append_singly_linked_list() == 0);
  assert(test_remove_head_singly_linked_list() == 0);
  assert(test_remove_middle_singly_linked_list() == 0);
  assert(test_remove_tail_singly_linked_list() == 0);
  assert(test_remove_none_singly_linked_list() == 0);
  assert(test_remove_from_empty_singly_linked_list() == 0);
  assert(test_remove_all_singly_linked_list() == 0);
  return 0;
}
```