user: 下面的汇编指令对应的C源代码是什么：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x70,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D145(%rip),%rax
  mov    %rax,-0x70(%rbp)
  lea    D126(%rip),%rax
  mov    %rax,-0x68(%rbp)
  lea    D12(%rip),%rax
  mov    %rax,-0x60(%rbp)
  lea    D17(%rip),%rax
  mov    %rax,-0x58(%rbp)
  lea    D170(%rip),%rax
  mov    %rax,-0x50(%rbp)
  lea    D73(%rip),%rax
  mov    %rax,-0x48(%rbp)
  lea    D133(%rip),%rax
  mov    %rax,-0x40(%rbp)
  lea    D65(%rip),%rax
  mov    %rax,-0x38(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D16(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x28(%rbp),%rax
  mov    %rax,%rdi
  call   <nxt64_64_test@plt>
  mov    -0x70(%rbp),%rax
  lea    -0x28(%rbp),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nxt64_vect_cmp@plt>
  lea    D114(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x28(%rbp),%rax
  mov    %rax,%rdi
  call   <nxt64_128_test@plt>
  mov    -0x68(%rbp),%rax
  lea    -0x28(%rbp),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nxt64_vect_cmp@plt>
  lea    D77(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x28(%rbp),%rax
  mov    %rax,%rdi
  call   <nxt64_192_test@plt>
  mov    -0x60(%rbp),%rax
  lea    -0x28(%rbp),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nxt64_vect_cmp@plt>
  lea    D168(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x28(%rbp),%rax
  mov    %rax,%rdi
  call   <nxt64_256_test@plt>
  mov    -0x58(%rbp),%rax
  lea    -0x28(%rbp),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nxt64_vect_cmp@plt>
  lea    D178(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x20(%rbp),%rax
  mov    %rax,%rdi
  call   <nxt128_64_test@plt>
  mov    -0x50(%rbp),%rax
  lea    -0x20(%rbp),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nxt128_vect_cmp@plt>
  lea    D174(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x20(%rbp),%rax
  mov    %rax,%rdi
  call   <nxt128_128_test@plt>
  mov    -0x48(%rbp),%rax
  lea    -0x20(%rbp),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nxt128_vect_cmp@plt>
  lea    D58(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x20(%rbp),%rax
  mov    %rax,%rdi
  call   <nxt128_192_test@plt>
  mov    -0x40(%rbp),%rax
  lea    -0x20(%rbp),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nxt128_vect_cmp@plt>
  lea    D82(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x20(%rbp),%rax
  mov    %rax,%rdi
  call   <nxt128_256_test@plt>
  mov    -0x38(%rbp),%rax
  lea    -0x20(%rbp),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nxt128_vect_cmp@plt>
  lea    D62(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L0
  call   <__stack_chk_fail@plt>
L0:
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D145
data_type: string
name: parse_data
arguments: data_tag: D126
data_type: string
name: parse_data
arguments: data_tag: D12
data_type: string
name: parse_data
arguments: data_tag: D17
data_type: string
name: parse_data
arguments: data_tag: D170
data_type: string
name: parse_data
arguments: data_tag: D73
data_type: string
name: parse_data
arguments: data_tag: D133
data_type: string
name: parse_data
arguments: data_tag: D65
data_type: string
name: parse_data
arguments: data_tag: D147
data_type: string
name: parse_data
arguments: data_tag: D16
data_type: string
name: parse_data
arguments: data_tag: D114
data_type: string
name: parse_data
arguments: data_tag: D77
data_type: string
name: parse_data
arguments: data_tag: D168
data_type: string
name: parse_data
arguments: data_tag: D178
data_type: string
name: parse_data
arguments: data_tag: D174
data_type: string
name: parse_data
arguments: data_tag: D58
data_type: string
name: parse_data
arguments: data_tag: D82
data_type: string
name: parse_data
arguments: data_tag: D62
data_type: string

tool: D145: 200e1f5847d8a2ce

tool: D126: b85d6b766dce952e

tool: D12: 2741d7963406daca

tool: D17: 8a4edfbc36bef7f6

tool: D170: 1eecbc7deb66e7dae1a7876d90c0b239

tool: D73: 849e0f0682f50cd588ae073006a10bee

tool: D133: 5934214ecba2d5fd58c261b28261b1bc

tool: D65: 45ccb1030f67b768247f530266bc4996

tool: D147: IDEA NXT Test Vectors:



tool: D16: NXT64 64 bits key:


tool: D114: NXT64 128 bits key:


tool: D77: NXT64 192 bits key:


tool: D168: NXT64 256 bits key:


tool: D178: NXT128 64 bits key:


tool: D174: NXT128 128 bits key:


tool: D58: NXT128 192 bits key:


tool: D82: NXT128 256 bits key:


tool: D62: 
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;
}
```