user: 这段汇编代码用C语言表示是什么样的?

```asm
<cookey>:
  endbr64
  sub    $0x118,%rsp
  movdqu (%rdi),%xmm5
  movdqu 0x10(%rdi),%xmm1
  movdqa D5(%rip),%xmm2
  movdqa D30(%rip),%xmm3
  mov    %fs:0x28,%rax
  mov    %rax,0x108(%rsp)
  xor    %eax,%eax
  movdqa %xmm5,%xmm7
  punpckhqdq %xmm1,%xmm5
  punpcklqdq %xmm1,%xmm7
  movdqa %xmm5,%xmm6
  movdqa D6(%rip),%xmm1
  movdqa %xmm5,%xmm8
  movdqa %xmm7,%xmm4
  psrlq  $0xa,%xmm6
  movdqa %xmm7,%xmm0
  psllq  $0x6,%xmm4
  psllq  $0xa,%xmm0
  pand   %xmm1,%xmm6
  pand   %xmm3,%xmm0
  psrlq  $0x6,%xmm8
  pand   %xmm2,%xmm4
  por    %xmm0,%xmm4
  movdqa D19(%rip),%xmm0
  pand   %xmm0,%xmm8
  por    %xmm8,%xmm6
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  psllq  $0xc,%xmm6
  psllq  $0x10,%xmm7
  pand   %xmm3,%xmm7
  pand   %xmm2,%xmm6
  por    %xmm7,%xmm6
  movdqa %xmm5,%xmm7
  pand   %xmm0,%xmm5
  psrlq  $0x4,%xmm7
  pand   %xmm1,%xmm7
  por    %xmm7,%xmm5
  por    %xmm6,%xmm5
  movdqa %xmm4,%xmm6
  punpcklqdq %xmm5,%xmm6
  punpckhqdq %xmm5,%xmm4
  movdqu 0x20(%rdi),%xmm5
  movaps %xmm4,0x10(%rsp)
  movdqu 0x30(%rdi),%xmm4
  movdqa %xmm5,%xmm7
  movaps %xmm6,(%rsp)
  punpcklqdq %xmm4,%xmm7
  punpckhqdq %xmm4,%xmm5
  movdqa %xmm7,%xmm6
  movdqa %xmm7,%xmm4
  movdqa %xmm5,%xmm8
  psllq  $0x6,%xmm4
  psllq  $0xa,%xmm6
  pand   %xmm3,%xmm6
  psrlq  $0x6,%xmm8
  pand   %xmm2,%xmm4
  por    %xmm6,%xmm4
  movdqa %xmm5,%xmm6
  pand   %xmm0,%xmm8
  psrlq  $0xa,%xmm6
  pand   %xmm1,%xmm6
  por    %xmm8,%xmm6
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  psllq  $0xc,%xmm6
  psllq  $0x10,%xmm7
  pand   %xmm3,%xmm7
  pand   %xmm2,%xmm6
  por    %xmm7,%xmm6
  movdqa %xmm5,%xmm7
  pand   %xmm0,%xmm5
  psrlq  $0x4,%xmm7
  pand   %xmm1,%xmm7
  por    %xmm7,%xmm5
  por    %xmm6,%xmm5
  movdqa %xmm4,%xmm6
  punpcklqdq %xmm5,%xmm6
  punpckhqdq %xmm5,%xmm4
  movdqu 0x40(%rdi),%xmm5
  movaps %xmm4,0x30(%rsp)
  movdqu 0x50(%rdi),%xmm4
  movdqa %xmm5,%xmm7
  movaps %xmm6,0x20(%rsp)
  punpcklqdq %xmm4,%xmm7
  punpckhqdq %xmm4,%xmm5
  movdqa %xmm7,%xmm6
  movdqa %xmm7,%xmm4
  movdqa %xmm5,%xmm8
  psllq  $0x6,%xmm4
  psllq  $0xa,%xmm6
  pand   %xmm3,%xmm6
  psrlq  $0x6,%xmm8
  pand   %xmm2,%xmm4
  por    %xmm6,%xmm4
  movdqa %xmm5,%xmm6
  pand   %xmm0,%xmm8
  psrlq  $0xa,%xmm6
  pand   %xmm1,%xmm6
  por    %xmm8,%xmm6
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  psllq  $0xc,%xmm6
  psllq  $0x10,%xmm7
  pand   %xmm3,%xmm7
  pand   %xmm2,%xmm6
  por    %xmm7,%xmm6
  movdqa %xmm5,%xmm7
  pand   %xmm0,%xmm5
  psrlq  $0x4,%xmm7
  pand   %xmm1,%xmm7
  por    %xmm7,%xmm5
  por    %xmm6,%xmm5
  movdqa %xmm4,%xmm6
  punpcklqdq %xmm5,%xmm6
  punpckhqdq %xmm5,%xmm4
  movdqu 0x60(%rdi),%xmm5
  movaps %xmm4,0x50(%rsp)
  movdqu 0x70(%rdi),%xmm4
  movdqa %xmm5,%xmm7
  movaps %xmm6,0x40(%rsp)
  punpcklqdq %xmm4,%xmm7
  punpckhqdq %xmm4,%xmm5
  movdqa %xmm7,%xmm6
  movdqa %xmm7,%xmm4
  movdqa %xmm5,%xmm8
  psllq  $0x6,%xmm4
  psllq  $0xa,%xmm6
  pand   %xmm3,%xmm6
  psrlq  $0x6,%xmm8
  pand   %xmm2,%xmm4
  por    %xmm6,%xmm4
  movdqa %xmm5,%xmm6
  pand   %xmm0,%xmm8
  psrlq  $0xa,%xmm6
  pand   %xmm1,%xmm6
  por    %xmm8,%xmm6
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  psllq  $0xc,%xmm6
  psllq  $0x10,%xmm7
  pand   %xmm3,%xmm7
  pand   %xmm2,%xmm6
  por    %xmm7,%xmm6
  movdqa %xmm5,%xmm7
  pand   %xmm0,%xmm5
  psrlq  $0x4,%xmm7
  pand   %xmm1,%xmm7
  por    %xmm7,%xmm5
  por    %xmm6,%xmm5
  movdqa %xmm4,%xmm6
  punpcklqdq %xmm5,%xmm6
  punpckhqdq %xmm5,%xmm4
  movdqu 0x80(%rdi),%xmm5
  movaps %xmm4,0x70(%rsp)
  movdqu 0x90(%rdi),%xmm4
  movdqa %xmm5,%xmm7
  movaps %xmm6,0x60(%rsp)
  punpcklqdq %xmm4,%xmm7
  punpckhqdq %xmm4,%xmm5
  movdqa %xmm7,%xmm6
  movdqa %xmm7,%xmm4
  movdqa %xmm5,%xmm8
  psllq  $0x6,%xmm4
  psllq  $0xa,%xmm6
  pand   %xmm3,%xmm6
  psrlq  $0x6,%xmm8
  pand   %xmm2,%xmm4
  por    %xmm6,%xmm4
  movdqa %xmm5,%xmm6
  pand   %xmm0,%xmm8
  psrlq  $0xa,%xmm6
  pand   %xmm1,%xmm6
  por    %xmm8,%xmm6
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  psllq  $0xc,%xmm6
  psllq  $0x10,%xmm7
  pand   %xmm3,%xmm7
  pand   %xmm2,%xmm6
  por    %xmm7,%xmm6
  movdqa %xmm5,%xmm7
  pand   %xmm0,%xmm5
  psrlq  $0x4,%xmm7
  pand   %xmm1,%xmm7
  por    %xmm7,%xmm5
  por    %xmm6,%xmm5
  movdqa %xmm4,%xmm6
  punpcklqdq %xmm5,%xmm6
  punpckhqdq %xmm5,%xmm4
  movdqu 0xa0(%rdi),%xmm5
  movaps %xmm4,0x90(%rsp)
  movdqu 0xb0(%rdi),%xmm4
  movdqa %xmm5,%xmm7
  movaps %xmm6,0x80(%rsp)
  punpcklqdq %xmm4,%xmm7
  punpckhqdq %xmm4,%xmm5
  movdqa %xmm7,%xmm6
  movdqa %xmm7,%xmm4
  movdqa %xmm5,%xmm8
  psllq  $0x6,%xmm4
  psllq  $0xa,%xmm6
  pand   %xmm3,%xmm6
  psrlq  $0x6,%xmm8
  pand   %xmm2,%xmm4
  por    %xmm6,%xmm4
  movdqa %xmm5,%xmm6
  pand   %xmm0,%xmm8
  psrlq  $0xa,%xmm6
  pand   %xmm1,%xmm6
  por    %xmm8,%xmm6
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  psllq  $0xc,%xmm6
  psllq  $0x10,%xmm7
  pand   %xmm3,%xmm7
  pand   %xmm2,%xmm6
  por    %xmm7,%xmm6
  movdqa %xmm5,%xmm7
  pand   %xmm0,%xmm5
  psrlq  $0x4,%xmm7
  pand   %xmm1,%xmm7
  por    %xmm7,%xmm5
  por    %xmm6,%xmm5
  movdqa %xmm4,%xmm6
  punpcklqdq %xmm5,%xmm6
  punpckhqdq %xmm5,%xmm4
  movdqu 0xc0(%rdi),%xmm5
  movaps %xmm6,0xa0(%rsp)
  movaps %xmm4,0xb0(%rsp)
  movdqu 0xd0(%rdi),%xmm4
  movdqa %xmm5,%xmm7
  punpckhqdq %xmm4,%xmm5
  punpcklqdq %xmm4,%xmm7
  movdqa %xmm5,%xmm6
  movdqa %xmm5,%xmm4
  movdqa %xmm7,%xmm8
  psrlq  $0xa,%xmm4
  psrlq  $0x6,%xmm6
  pand   %xmm0,%xmm6
  psllq  $0xa,%xmm8
  pand   %xmm1,%xmm4
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  pand   %xmm3,%xmm8
  psllq  $0x6,%xmm6
  pand   %xmm2,%xmm6
  por    %xmm8,%xmm6
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  psllq  $0xc,%xmm6
  psllq  $0x10,%xmm7
  pand   %xmm3,%xmm7
  pand   %xmm2,%xmm6
  por    %xmm7,%xmm6
  movdqa %xmm5,%xmm7
  pand   %xmm0,%xmm5
  psrlq  $0x4,%xmm7
  pand   %xmm1,%xmm7
  por    %xmm7,%xmm5
  por    %xmm6,%xmm5
  movdqa %xmm4,%xmm6
  punpckhqdq %xmm5,%xmm4
  punpcklqdq %xmm5,%xmm6
  movdqu 0xe0(%rdi),%xmm5
  movaps %xmm4,0xd0(%rsp)
  movdqu 0xf0(%rdi),%xmm4
  mov    %rsp,%rdi
  movdqa %xmm5,%xmm7
  movaps %xmm6,0xc0(%rsp)
  punpckhqdq %xmm4,%xmm5
  punpcklqdq %xmm4,%xmm7
  movdqa %xmm5,%xmm6
  movdqa %xmm5,%xmm4
  movdqa %xmm7,%xmm8
  psrlq  $0x6,%xmm4
  psrlq  $0xa,%xmm6
  pand   %xmm1,%xmm6
  psllq  $0x6,%xmm8
  pand   %xmm0,%xmm4
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  pand   %xmm2,%xmm8
  psllq  $0xa,%xmm6
  pand   %xmm3,%xmm6
  por    %xmm8,%xmm6
  por    %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  psllq  $0x10,%xmm6
  psllq  $0xc,%xmm7
  pand   %xmm6,%xmm3
  pand   %xmm2,%xmm7
  movdqa %xmm3,%xmm2
  movdqa %xmm5,%xmm3
  pand   %xmm0,%xmm5
  psrlq  $0x4,%xmm3
  por    %xmm7,%xmm2
  movdqa %xmm4,%xmm0
  pand   %xmm3,%xmm1
  por    %xmm5,%xmm1
  por    %xmm1,%xmm2
  punpcklqdq %xmm2,%xmm0
  punpckhqdq %xmm2,%xmm4
  movaps %xmm0,0xe0(%rsp)
  movaps %xmm4,0xf0(%rsp)
  call   <usekey@plt>
  mov    0x108(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L2
  add    $0x118,%rsp
  ret
L2:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_label: D5
data_type: byte[16]
name: unpack_data
arguments: data_label: D30
data_type: byte[16]
name: unpack_data
arguments: data_label: D6
data_type: byte[16]
name: unpack_data
arguments: data_label: D19
data_type: byte[16]

tool: {"D5": [0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00]}

tool: {"D30": [0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00]}

tool: {"D6": [0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D19": [0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

assistant: ```c
void cookey(raw1) register unsigned long *raw1;
{
  register unsigned long *cook, *raw0;
  unsigned long dough[32];
  register int i;
  cook = dough;
  for (i = 0; i < 16; i++, raw1++) {
    raw0 = raw1++;
    *cook = (*raw0 & 0x00fc0000L) << 6;
    *cook |= (*raw0 & 0x00000fc0L) << 10;
    *cook |= (*raw1 & 0x00fc0000L) >> 10;
    *cook++ |= (*raw1 & 0x00000fc0L) >> 6;
    *cook = (*raw0 & 0x0003f000L) << 12;
    *cook |= (*raw0 & 0x0000003fL) << 16;
    *cook |= (*raw1 & 0x0003f000L) >> 4;
    *cook++ |= (*raw1 & 0x0000003fL);
  }
  usekey(dough);
  return;
}
```