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

```asm
<main>:
  endbr64
  push   %rbp
  lea    D9(%rip),%rdi
  sub    $0x30,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  lea    0x8(%rsp),%rbp
  call   <printf@plt>
  lea    D108(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <nxt64_64_test@plt>
  mov    %rbp,%rsi
  lea    D69(%rip),%rdi
  call   <nxt64_vect_cmp@plt>
  lea    D120(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <nxt64_128_test@plt>
  mov    %rbp,%rsi
  lea    D124(%rip),%rdi
  call   <nxt64_vect_cmp@plt>
  lea    D94(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <nxt64_192_test@plt>
  mov    %rbp,%rsi
  lea    D39(%rip),%rdi
  call   <nxt64_vect_cmp@plt>
  lea    D62(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <nxt64_256_test@plt>
  mov    %rbp,%rsi
  lea    D149(%rip),%rdi
  lea    0x10(%rsp),%rbp
  call   <nxt64_vect_cmp@plt>
  lea    D113(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <nxt128_64_test@plt>
  mov    %rbp,%rsi
  lea    D13(%rip),%rdi
  call   <nxt128_vect_cmp@plt>
  lea    D177(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <nxt128_128_test@plt>
  mov    %rbp,%rsi
  lea    D40(%rip),%rdi
  call   <nxt128_vect_cmp@plt>
  lea    D102(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <nxt128_192_test@plt>
  mov    %rbp,%rsi
  lea    D139(%rip),%rdi
  call   <nxt128_vect_cmp@plt>
  lea    D164(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <nxt128_256_test@plt>
  lea    D171(%rip),%rdi
  mov    %rbp,%rsi
  call   <nxt128_vect_cmp@plt>
  lea    D2(%rip),%rdi
  call   <printf@plt>
  mov    0x28(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L7
  add    $0x30,%rsp
  xor    %eax,%eax
  pop    %rbp
  ret
L7:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D9
datatype: string
name: extract_symbolic_data
arguments: label: D108
datatype: string
name: extract_symbolic_data
arguments: label: D69
datatype: string
name: extract_symbolic_data
arguments: label: D120
datatype: string
name: extract_symbolic_data
arguments: label: D124
datatype: string
name: extract_symbolic_data
arguments: label: D94
datatype: string
name: extract_symbolic_data
arguments: label: D39
datatype: string
name: extract_symbolic_data
arguments: label: D62
datatype: string
name: extract_symbolic_data
arguments: label: D149
datatype: string
name: extract_symbolic_data
arguments: label: D113
datatype: string
name: extract_symbolic_data
arguments: label: D13
datatype: string
name: extract_symbolic_data
arguments: label: D177
datatype: string
name: extract_symbolic_data
arguments: label: D40
datatype: string
name: extract_symbolic_data
arguments: label: D102
datatype: string
name: extract_symbolic_data
arguments: label: D139
datatype: string
name: extract_symbolic_data
arguments: label: D164
datatype: string
name: extract_symbolic_data
arguments: label: D171
datatype: string
name: extract_symbolic_data
arguments: label: D2
datatype: string

tool: D9: IDEA NXT Test Vectors:



tool: D108: NXT64 64 bits key:


tool: D69: 200e1f5847d8a2ce

tool: D120: NXT64 128 bits key:


tool: D124: b85d6b766dce952e

tool: D94: NXT64 192 bits key:


tool: D39: 2741d7963406daca

tool: D62: NXT64 256 bits key:


tool: D149: 8a4edfbc36bef7f6

tool: D113: NXT128 64 bits key:


tool: D13: 1eecbc7deb66e7dae1a7876d90c0b239

tool: D177: NXT128 128 bits key:


tool: D40: 849e0f0682f50cd588ae073006a10bee

tool: D102: NXT128 192 bits key:


tool: D139: 5934214ecba2d5fd58c261b28261b1bc

tool: D164: NXT128 256 bits key:


tool: D171: 45ccb1030f67b768247f530266bc4996

tool: D2: 
All tests passed


assistant: ```c
int main(void) {
  unsigned char *vectors64[] = {(unsigned char *)"200e1f5847d8a2ce", (unsigned char *)"b85d6b766dce952e", (unsigned char *)"2741d7963406daca", (unsigned char *)"8a4edfbc36bef7f6"};
  unsigned char *vectors128[] = {(unsigned char *)"1eecbc7deb66e7dae1a7876d90c0b239", (unsigned char *)"849e0f0682f50cd588ae073006a10bee", (unsigned char *)"5934214ecba2d5fd58c261b28261b1bc", (unsigned char *)"45ccb1030f67b768247f530266bc4996"};
  unsigned char ct64[8];
  unsigned char ct128[16];
  printf("IDEA NXT Test Vectors:\n\n");
  printf("NXT64 64 bits key:\n");
  nxt64_64_test(ct64);
  nxt64_vect_cmp(vectors64[0], ct64);
  printf("NXT64 128 bits key:\n");
  nxt64_128_test(ct64);
  nxt64_vect_cmp(vectors64[1], ct64);
  printf("NXT64 192 bits key:\n");
  nxt64_192_test(ct64);
  nxt64_vect_cmp(vectors64[2], ct64);
  printf("NXT64 256 bits key:\n");
  nxt64_256_test(ct64);
  nxt64_vect_cmp(vectors64[3], ct64);
  printf("NXT128 64 bits key:\n");
  nxt128_64_test(ct128);
  nxt128_vect_cmp(vectors128[0], ct128);
  printf("NXT128 128 bits key:\n");
  nxt128_128_test(ct128);
  nxt128_vect_cmp(vectors128[1], ct128);
  printf("NXT128 192 bits key:\n");
  nxt128_192_test(ct128);
  nxt128_vect_cmp(vectors128[2], ct128);
  printf("NXT128 256 bits key:\n");
  nxt128_256_test(ct128);
  nxt128_vect_cmp(vectors128[3], ct128);
  printf("\nAll tests passed\n");
  return 0;
}
```