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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x100,%rsp
  mov    %edi,-0xf4(%rbp)
  mov    %rsi,-0x100(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0xe8(%rbp)
  lea    D216(%rip),%rax
  mov    %rax,-0xe0(%rbp)
  lea    D61(%rip),%rax
  mov    %rax,-0xd8(%rbp)
  lea    D240(%rip),%rax
  mov    %rax,-0xd0(%rbp)
  lea    D255(%rip),%rax
  mov    %rax,-0xc8(%rbp)
  lea    D148(%rip),%rax
  mov    %rax,-0xc0(%rbp)
  lea    D133(%rip),%rax
  mov    %rax,-0xb8(%rbp)
  lea    D288(%rip),%rax
  mov    %rax,-0xb0(%rbp)
  lea    D75(%rip),%rax
  mov    %rax,-0xa8(%rbp)
  lea    D182(%rip),%rax
  mov    %rax,-0xa0(%rbp)
  lea    D259(%rip),%rax
  mov    %rax,-0x98(%rbp)
  lea    D157(%rip),%rax
  mov    %rax,-0x90(%rbp)
  lea    D203(%rip),%rax
  mov    %rax,-0x88(%rbp)
  lea    D191(%rip),%rax
  mov    %rax,-0x80(%rbp)
  lea    D114(%rip),%rax
  mov    %rax,-0x78(%rbp)
  lea    D92(%rip),%rax
  mov    %rax,-0x70(%rbp)
  lea    D109(%rip),%rax
  mov    %rax,-0x68(%rbp)
  lea    D153(%rip),%rax
  mov    %rax,-0x60(%rbp)
  lea    D154(%rip),%rax
  mov    %rax,-0x58(%rbp)
  lea    D146(%rip),%rax
  mov    %rax,-0x50(%rbp)
  lea    D43(%rip),%rax
  mov    %rax,-0x48(%rbp)
  lea    D212(%rip),%rax
  mov    %rax,-0x40(%rbp)
  lea    D90(%rip),%rax
  mov    %rax,-0x38(%rbp)
  lea    D164(%rip),%rax
  mov    %rax,-0x30(%rbp)
  lea    D275(%rip),%rax
  mov    %rax,-0x28(%rbp)
  lea    D110(%rip),%rax
  mov    %rax,-0x20(%rbp)
  lea    D225(%rip),%rax
  mov    %rax,-0x18(%rbp)
  lea    D230(%rip),%rax
  mov    %rax,-0x10(%rbp)
  lea    D99(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    -0xec(%rbp),%rax
  mov    %rax,%rdi
  call   <time@plt>
  mov    %eax,%edi
  call   <srand@plt>
  mov    $0x0,%eax
  call   <rand@plt>
  mov    %eax,%edx
  movslq %edx,%rax
  imul   $0x4bda12f7,%rax,%rax
  shr    $0x20,%rax
  sar    $0x3,%eax
  mov    %edx,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%eax
  mov    %eax,-0xe4(%rbp)
  mov    -0xe4(%rbp),%ecx
  mov    %ecx,%eax
  add    %eax,%eax
  add    %ecx,%eax
  lea    0x0(,%rax,8),%ecx
  add    %ecx,%eax
  sub    %eax,%edx
  mov    %edx,-0xe4(%rbp)
  mov    -0xe4(%rbp),%eax
  cltq
  mov    -0xe0(%rbp,%rax,8),%rdx
  mov    -0xe4(%rbp),%eax
  mov    %eax,%esi
  lea    D115(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L9
  call   <__stack_chk_fail@plt>
L9:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D216
datatype: string
name: extract_symbolic_data
arguments: label: D61
datatype: string
name: extract_symbolic_data
arguments: label: D240
datatype: string
name: extract_symbolic_data
arguments: label: D255
datatype: string
name: extract_symbolic_data
arguments: label: D148
datatype: string
name: extract_symbolic_data
arguments: label: D133
datatype: string
name: extract_symbolic_data
arguments: label: D288
datatype: string
name: extract_symbolic_data
arguments: label: D75
datatype: string
name: extract_symbolic_data
arguments: label: D182
datatype: string
name: extract_symbolic_data
arguments: label: D259
datatype: string
name: extract_symbolic_data
arguments: label: D157
datatype: string
name: extract_symbolic_data
arguments: label: D203
datatype: string
name: extract_symbolic_data
arguments: label: D191
datatype: string
name: extract_symbolic_data
arguments: label: D114
datatype: string
name: extract_symbolic_data
arguments: label: D92
datatype: string
name: extract_symbolic_data
arguments: label: D109
datatype: string
name: extract_symbolic_data
arguments: label: D153
datatype: string
name: extract_symbolic_data
arguments: label: D154
datatype: string
name: extract_symbolic_data
arguments: label: D146
datatype: string
name: extract_symbolic_data
arguments: label: D43
datatype: string
name: extract_symbolic_data
arguments: label: D212
datatype: string
name: extract_symbolic_data
arguments: label: D90
datatype: string
name: extract_symbolic_data
arguments: label: D164
datatype: string
name: extract_symbolic_data
arguments: label: D275
datatype: string
name: extract_symbolic_data
arguments: label: D110
datatype: string
name: extract_symbolic_data
arguments: label: D225
datatype: string
name: extract_symbolic_data
arguments: label: D230
datatype: string
name: extract_symbolic_data
arguments: label: D99
datatype: string
name: extract_symbolic_data
arguments: label: D115
datatype: string

tool: D216: Climax!

tool: D61: Dr. No

tool: D240: From Russia with Love

tool: D255: Goldfinger

tool: D148: Thunderball

tool: D133: You Only Live Twice

tool: D288: Casino Royale

tool: D75: On Her Majesty's Secret Service

tool: D182: Diamonds Are Forever

tool: D259: Live & Let Die

tool: D157: The Man with the Golden Gun

tool: D203: The Spy Who Loved Me

tool: D191: Moonraker

tool: D114: For Your Eyes Only

tool: D92: Octopussy

tool: D109: Never Say Never Again

tool: D153: A View To Kill

tool: D154: The Living Daylights

tool: D146: Licence to Kill

tool: D43: Goldeneye

tool: D212: Tomorrow Never Dies

tool: D90: This World Is Not Enough

tool: D164: Die Another Day

tool: D275: Casino Royale(DCraig)

tool: D110: Quantum Sol

tool: D225: Skyfall

tool: D230: Spectre

tool: D99: 



tool: D115: Congratulations you have rolled #%d, %s




assistant: ```c
int main(int argc, char *argv[]) {
  int i = 0;
  char *bonds[] = {"Climax!", "Dr. No", "From Russia with Love", "Goldfinger", "Thunderball", "You Only Live Twice", "Casino Royale", "On Her Majesty\'s Secret Service", "Diamonds Are Forever", "Live & Let Die", "The Man with the Golden Gun", "The Spy Who Loved Me", "Moonraker", "For Your Eyes Only", "Octopussy", "Never Say Never Again", "A View To Kill", "The Living Daylights", "Licence to Kill", "Goldeneye", "Tomorrow Never Dies", "This World Is Not Enough", "Die Another Day", "Casino Royale(DCraig)", "Quantum Sol", "Skyfall", "Spectre"};
  printf("\n\n\n");
  int j, n;
  time_t t;
  srand((unsigned)time(&t));
  n = rand() % 27;
  printf("Congratulations you have rolled #%d, %s\n\n\n", n, bonds[n]);
  return 0;
}
```