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

```asm
<reset_board>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r12
  push   %rbx
  sub    $0x130,%rsp
  mov    %rdi,-0x138(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x18(%rbp)
  xor    %eax,%eax
  lea    D94(%rip),%rax
  mov    %rax,-0x120(%rbp)
  lea    D154(%rip),%rax
  mov    %rax,-0x118(%rbp)
  lea    D197(%rip),%rax
  mov    %rax,-0x110(%rbp)
  lea    D105(%rip),%rax
  mov    %rax,-0x108(%rbp)
  lea    D309(%rip),%rax
  mov    %rax,-0x100(%rbp)
  lea    D318(%rip),%rax
  mov    %rax,-0xf8(%rbp)
  lea    D270(%rip),%rax
  mov    %rax,-0xf0(%rbp)
  lea    D224(%rip),%rax
  mov    %rax,-0xe8(%rbp)
  lea    D37(%rip),%rax
  mov    %rax,-0xe0(%rbp)
  lea    D186(%rip),%rax
  mov    %rax,-0xd8(%rbp)
  lea    D4(%rip),%rax
  mov    %rax,-0xd0(%rbp)
  lea    D7(%rip),%rax
  mov    %rax,-0xc8(%rbp)
  lea    D281(%rip),%rax
  mov    %rax,-0xc0(%rbp)
  lea    D292(%rip),%rax
  mov    %rax,-0xb8(%rbp)
  lea    D265(%rip),%rax
  mov    %rax,-0xb0(%rbp)
  lea    D58(%rip),%rax
  mov    %rax,-0xa8(%rbp)
  lea    D64(%rip),%rax
  mov    %rax,-0xa0(%rbp)
  lea    D11(%rip),%rax
  mov    %rax,-0x98(%rbp)
  lea    D175(%rip),%rax
  mov    %rax,-0x90(%rbp)
  lea    D80(%rip),%rax
  mov    %rax,-0x88(%rbp)
  lea    D118(%rip),%rax
  mov    %rax,-0x80(%rbp)
  lea    D16(%rip),%rax
  mov    %rax,-0x78(%rbp)
  lea    D226(%rip),%rax
  mov    %rax,-0x70(%rbp)
  lea    D145(%rip),%rax
  mov    %rax,-0x68(%rbp)
  lea    D209(%rip),%rax
  mov    %rax,-0x60(%rbp)
  lea    D215(%rip),%rax
  mov    %rax,-0x58(%rbp)
  lea    D216(%rip),%rax
  mov    %rax,-0x50(%rbp)
  lea    D236(%rip),%rax
  mov    %rax,-0x48(%rbp)
  lea    D140(%rip),%rax
  mov    %rax,-0x40(%rbp)
  lea    D314(%rip),%rax
  mov    %rax,-0x38(%rbp)
  lea    D287(%rip),%rax
  mov    %rax,-0x30(%rbp)
  lea    D50(%rip),%rax
  mov    %rax,-0x28(%rbp)
  movl   $0x0,-0x124(%rbp)
  jmp    L19
L12:
  mov    -0x124(%rbp),%eax
  cltq
  mov    -0x120(%rbp,%rax,8),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  sub    $0x30,%eax
  movsbl %al,%r12d
  mov    -0x124(%rbp),%eax
  cltq
  mov    -0x120(%rbp,%rax,8),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  sub    $0x30,%eax
  movsbl %al,%ebx
  mov    -0x124(%rbp),%eax
  cltq
  mov    -0x120(%rbp,%rax,8),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    %eax,%edi
  call   <convert_hex_char_to_int@plt>
  mov    %eax,%edi
  mov    -0x138(%rbp),%rax
  mov    %rax,%rcx
  mov    %r12d,%edx
  mov    %ebx,%esi
  call   <set_piece@plt>
  addl   $0x1,-0x124(%rbp)
L19:
  mov    -0x124(%rbp),%eax
  cmp    $0x1f,%eax
  jbe    L12
  nop
  mov    -0x18(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L28
  call   <__stack_chk_fail@plt>
L28:
  add    $0x130,%rsp
  pop    %rbx
  pop    %r12
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D94
data_type: string
name: extract_symbolic_data
arguments: tag: D154
data_type: string
name: extract_symbolic_data
arguments: tag: D197
data_type: string
name: extract_symbolic_data
arguments: tag: D105
data_type: string
name: extract_symbolic_data
arguments: tag: D309
data_type: string
name: extract_symbolic_data
arguments: tag: D318
data_type: string
name: extract_symbolic_data
arguments: tag: D270
data_type: string
name: extract_symbolic_data
arguments: tag: D224
data_type: string
name: extract_symbolic_data
arguments: tag: D37
data_type: string
name: extract_symbolic_data
arguments: tag: D186
data_type: string
name: extract_symbolic_data
arguments: tag: D4
data_type: string
name: extract_symbolic_data
arguments: tag: D7
data_type: string
name: extract_symbolic_data
arguments: tag: D281
data_type: string
name: extract_symbolic_data
arguments: tag: D292
data_type: string
name: extract_symbolic_data
arguments: tag: D265
data_type: string
name: extract_symbolic_data
arguments: tag: D58
data_type: string
name: extract_symbolic_data
arguments: tag: D64
data_type: string
name: extract_symbolic_data
arguments: tag: D11
data_type: string
name: extract_symbolic_data
arguments: tag: D175
data_type: string
name: extract_symbolic_data
arguments: tag: D80
data_type: string
name: extract_symbolic_data
arguments: tag: D118
data_type: string
name: extract_symbolic_data
arguments: tag: D16
data_type: string
name: extract_symbolic_data
arguments: tag: D226
data_type: string
name: extract_symbolic_data
arguments: tag: D145
data_type: string
name: extract_symbolic_data
arguments: tag: D209
data_type: string
name: extract_symbolic_data
arguments: tag: D215
data_type: string
name: extract_symbolic_data
arguments: tag: D216
data_type: string
name: extract_symbolic_data
arguments: tag: D236
data_type: string
name: extract_symbolic_data
arguments: tag: D140
data_type: string
name: extract_symbolic_data
arguments: tag: D314
data_type: string
name: extract_symbolic_data
arguments: tag: D287
data_type: string
name: extract_symbolic_data
arguments: tag: D50
data_type: string

tool: D94: A18

tool: D154: 828

tool: D197: 938

tool: D105: B48

tool: D309: C58

tool: D318: 968

tool: D270: 878

tool: D224: A88

tool: D37: 717

tool: D186: 727

tool: D4: 737

tool: D7: 747

tool: D281: 757

tool: D292: 767

tool: D265: 777

tool: D58: 787

tool: D64: 112

tool: D11: 122

tool: D175: 132

tool: D80: 142

tool: D118: 152

tool: D16: 162

tool: D226: 172

tool: D145: 182

tool: D209: 411

tool: D215: 221

tool: D216: 331

tool: D236: 541

tool: D140: 651

tool: D314: 361

tool: D287: 271

tool: D50: 481

assistant: ```c
void reset_board(int **board) {
  const char *defaultPieces[32] = {"A18", "828", "938", "B48", "C58", "968", "878", "A88", "717", "727", "737", "747", "757", "767", "777", "787", "112", "122", "132", "142", "152", "162", "172", "182", "411", "221", "331", "541", "651", "361", "271", "481"};
  for (int i = 0; i < sizeof(defaultPieces) / sizeof(int *); i++) {
    set_piece(convert_hex_char_to_int(defaultPieces[i][0]), defaultPieces[i][1] - '0', defaultPieces[i][2] - '0', board);
  }
}
```