user: Converte this assembly snippet into its equivalent C code:

```asm
<is_ignored_symbol>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x28,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %esi,%eax
  mov    %al,-0x2c(%rbp)
  lea    D46(%rip),%rax
  mov    %rax,-0x18(%rbp)
  jmp    L95
L65:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x28(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L86
  mov    $0x1,%eax
  jmp    L233
L86:
  addq   $0x8,-0x18(%rbp)
L95:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  jne    L65
  lea    D38(%rip),%rax
  mov    %rax,-0x18(%rbp)
  jmp    L161
L199:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%edx
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rcx
  mov    -0x28(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L101
  mov    $0x1,%eax
  jmp    L233
L101:
  addq   $0x8,-0x18(%rbp)
L161:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  jne    L199
  lea    D24(%rip),%rax
  mov    %rax,-0x18(%rbp)
  jmp    L114
L238:
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ebx
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%edx
  mov    %ebx,%eax
  sub    %edx,%eax
  mov    %eax,-0x1c(%rbp)
  cmpl   $0x0,-0x1c(%rbp)
  js     L153
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    -0x1c(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x28(%rbp),%rdx
  add    %rcx,%rdx
  mov    %rax,%rsi
  mov    %rdx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L153
  mov    $0x1,%eax
  jmp    L233
L153:
  addq   $0x8,-0x18(%rbp)
L114:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  jne    L238
  cmpb   $0x55,-0x2c(%rbp)
  je     L72
  cmpb   $0x75,-0x2c(%rbp)
  jne    L23
L72:
  mov    $0x1,%eax
  jmp    L233
L23:
  cmpb   $0x4e,-0x2c(%rbp)
  je     L21
  cmpb   $0x6e,-0x2c(%rbp)
  jne    L154
L21:
  mov    $0x1,%eax
  jmp    L233
L154:
  movsbl -0x2c(%rbp),%eax
  mov    %eax,%edi
  call   <toupper@plt>
  cmp    $0x41,%al
  jne    L32
  mov    -0x28(%rbp),%rax
  lea    D5(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L32
  mov    -0x28(%rbp),%rax
  lea    D1(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L32
  mov    -0x28(%rbp),%rax
  lea    D17(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L32
  mov    -0x28(%rbp),%rax
  lea    D6(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L32
  mov    $0x1,%eax
  jmp    L233
L32:
  mov    $0x0,%eax
L233:
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: label: D5
type_guessed: string
name: disassemble_data
arguments: label: D1
type_guessed: string
name: disassemble_data
arguments: label: D17
type_guessed: string
name: disassemble_data
arguments: label: D6
type_guessed: string

tool: D5: __kernel_syscall_via_break

tool: D1: __kernel_syscall_via_epc

tool: D17: __kernel_sigtramp

tool: D6: __gp

assistant: ```c
bool is_ignored_symbol(const char *name, char type) {
  static const char *const ignored_symbols[] = {"kallsyms_addresses", "kallsyms_offsets", "kallsyms_relative_base", "kallsyms_num_syms", "kallsyms_names", "kallsyms_markers", "kallsyms_token_table", "kallsyms_token_index", "_SDA_BASE_", "_SDA2_BASE_", NULL};
  static const char *const ignored_prefixes[] = {"$", ".LASANPC", "__crc_", "__efistub_", NULL};
  static const char *const ignored_suffixes[] = {"_from_arm", "_from_thumb", "_veneer", NULL};
  const char *const *p;
  for (p = ignored_symbols; *p; p++)
    if (!strcmp(name, *p))
      return true;
  for (p = ignored_prefixes; *p; p++)
    if (!strncmp(name, *p, strlen(*p)))
      return true;
  for (p = ignored_suffixes; *p; p++) {
    int l = strlen(name) - strlen(*p);
    if (l >= 0 && !strcmp(name + l, *p))
      return true;
  }
  if (type == 'U' || type == 'u')
    return true;
  if (type == 'N' || type == 'n')
    return true;
  if (toupper(type) == 'A') {
    if (strcmp(name, "__kernel_syscall_via_break") && strcmp(name, "__kernel_syscall_via_epc") && strcmp(name, "__kernel_sigtramp") && strcmp(name, "__gp"))
      return true;
  }
  return false;
}
```