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

```asm
<register_keywords>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    $0x3a,%edx
  lea    D151(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x3b,%edx
  lea    D320(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x3c,%edx
  lea    D15(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x3d,%edx
  lea    D19(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x3e,%edx
  lea    D216(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x3f,%edx
  lea    D303(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x40,%edx
  lea    D41(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x41,%edx
  lea    D65(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x42,%edx
  lea    D140(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x43,%edx
  lea    D75(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x44,%edx
  lea    D256(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x45,%edx
  lea    D171(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x46,%edx
  lea    D253(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x47,%edx
  lea    D165(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x48,%edx
  lea    D152(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x49,%edx
  lea    D363(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x4a,%edx
  lea    D3(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x4b,%edx
  lea    D341(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x4c,%edx
  lea    D275(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x4d,%edx
  lea    D14(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x4e,%edx
  lea    D197(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x4f,%edx
  lea    D361(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x50,%edx
  lea    D108(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x51,%edx
  lea    D86(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x52,%edx
  lea    D45(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x53,%edx
  lea    D355(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x54,%edx
  lea    D302(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x55,%edx
  lea    D228(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x56,%edx
  lea    D8(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x57,%edx
  lea    D119(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x58,%edx
  lea    D276(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x59,%edx
  lea    D192(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x5a,%edx
  lea    D128(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x5a,%edx
  lea    D250(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x5b,%edx
  lea    D40(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x5c,%edx
  lea    D92(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x5c,%edx
  lea    D323(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x5d,%edx
  lea    D287(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  mov    -0x8(%rbp),%rax
  mov    $0x5e,%edx
  lea    D193(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hash_keyword@plt>
  nop
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D151
data_type: string
name: extract_symbolic_data
arguments: data_label: D320
data_type: string
name: extract_symbolic_data
arguments: data_label: D15
data_type: string
name: extract_symbolic_data
arguments: data_label: D19
data_type: string
name: extract_symbolic_data
arguments: data_label: D216
data_type: string
name: extract_symbolic_data
arguments: data_label: D303
data_type: string
name: extract_symbolic_data
arguments: data_label: D41
data_type: string
name: extract_symbolic_data
arguments: data_label: D65
data_type: string
name: extract_symbolic_data
arguments: data_label: D140
data_type: string
name: extract_symbolic_data
arguments: data_label: D75
data_type: string
name: extract_symbolic_data
arguments: data_label: D256
data_type: string
name: extract_symbolic_data
arguments: data_label: D171
data_type: string
name: extract_symbolic_data
arguments: data_label: D253
data_type: string
name: extract_symbolic_data
arguments: data_label: D165
data_type: string
name: extract_symbolic_data
arguments: data_label: D152
data_type: string
name: extract_symbolic_data
arguments: data_label: D363
data_type: string
name: extract_symbolic_data
arguments: data_label: D3
data_type: string
name: extract_symbolic_data
arguments: data_label: D341
data_type: string
name: extract_symbolic_data
arguments: data_label: D275
data_type: string
name: extract_symbolic_data
arguments: data_label: D14
data_type: string
name: extract_symbolic_data
arguments: data_label: D197
data_type: string
name: extract_symbolic_data
arguments: data_label: D361
data_type: string
name: extract_symbolic_data
arguments: data_label: D108
data_type: string
name: extract_symbolic_data
arguments: data_label: D86
data_type: string
name: extract_symbolic_data
arguments: data_label: D45
data_type: string
name: extract_symbolic_data
arguments: data_label: D355
data_type: string
name: extract_symbolic_data
arguments: data_label: D302
data_type: string
name: extract_symbolic_data
arguments: data_label: D228
data_type: string
name: extract_symbolic_data
arguments: data_label: D8
data_type: string
name: extract_symbolic_data
arguments: data_label: D119
data_type: string
name: extract_symbolic_data
arguments: data_label: D276
data_type: string
name: extract_symbolic_data
arguments: data_label: D192
data_type: string
name: extract_symbolic_data
arguments: data_label: D128
data_type: string
name: extract_symbolic_data
arguments: data_label: D250
data_type: string
name: extract_symbolic_data
arguments: data_label: D40
data_type: string
name: extract_symbolic_data
arguments: data_label: D92
data_type: string
name: extract_symbolic_data
arguments: data_label: D323
data_type: string
name: extract_symbolic_data
arguments: data_label: D287
data_type: string
name: extract_symbolic_data
arguments: data_label: D193
data_type: string

tool: D151: auto

tool: D320: break

tool: D15: case

tool: D19: char

tool: D216: const

tool: D303: continue

tool: D41: default

tool: D65: do

tool: D140: double

tool: D75: else

tool: D256: enum

tool: D171: extern

tool: D253: float

tool: D165: for

tool: D152: goto

tool: D363: if

tool: D3: inline

tool: D341: int

tool: D275: long

tool: D14: register

tool: D197: restrict

tool: D361: return

tool: D108: short

tool: D86: signed

tool: D45: sizeof

tool: D355: static

tool: D302: struct

tool: D228: switch

tool: D8: typedef

tool: D119: union

tool: D276: unsigned

tool: D192: void

tool: D128: volatile

tool: D250: __volatile__

tool: D40: while

tool: D92: asm

tool: D323: __asm__

tool: D287: __attribute__

tool: D193: __alignof__

assistant: ```c
void register_keywords(struct compile_state *state) {
  hash_keyword(state, "auto", 58);
  hash_keyword(state, "break", 59);
  hash_keyword(state, "case", 60);
  hash_keyword(state, "char", 61);
  hash_keyword(state, "const", 62);
  hash_keyword(state, "continue", 63);
  hash_keyword(state, "default", 64);
  hash_keyword(state, "do", 65);
  hash_keyword(state, "double", 66);
  hash_keyword(state, "else", 67);
  hash_keyword(state, "enum", 68);
  hash_keyword(state, "extern", 69);
  hash_keyword(state, "float", 70);
  hash_keyword(state, "for", 71);
  hash_keyword(state, "goto", 72);
  hash_keyword(state, "if", 73);
  hash_keyword(state, "inline", 74);
  hash_keyword(state, "int", 75);
  hash_keyword(state, "long", 76);
  hash_keyword(state, "register", 77);
  hash_keyword(state, "restrict", 78);
  hash_keyword(state, "return", 79);
  hash_keyword(state, "short", 80);
  hash_keyword(state, "signed", 81);
  hash_keyword(state, "sizeof", 82);
  hash_keyword(state, "static", 83);
  hash_keyword(state, "struct", 84);
  hash_keyword(state, "switch", 85);
  hash_keyword(state, "typedef", 86);
  hash_keyword(state, "union", 87);
  hash_keyword(state, "unsigned", 88);
  hash_keyword(state, "void", 89);
  hash_keyword(state, "volatile", 90);
  hash_keyword(state, "__volatile__", 90);
  hash_keyword(state, "while", 91);
  hash_keyword(state, "asm", 92);
  hash_keyword(state, "__asm__", 92);
  hash_keyword(state, "__attribute__", 93);
  hash_keyword(state, "__alignof__", 94);
}
```