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

```asm
<trasp64_128_88ccw>:
  endbr64
  movdqa D115(%rip),%xmm5
  mov    %rdi,%rsi
  mov    %rdi,%rax
  movdqa D86(%rip),%xmm4
  lea    0x200(%rdi),%rdx
  nopl   0x0(%rax)
L25:
  movdqu (%rax),%xmm1
  movdqu 0x200(%rax),%xmm0
  add    $0x10,%rax
  movdqa %xmm0,%xmm2
  movdqa %xmm1,%xmm3
  pand   %xmm4,%xmm0
  psllq  $0x20,%xmm2
  psrlq  $0x20,%xmm1
  pand   %xmm5,%xmm3
  por    %xmm3,%xmm2
  por    %xmm1,%xmm0
  movups %xmm2,-0x10(%rax)
  movups %xmm0,0x1f0(%rax)
  cmp    %rdx,%rax
  jne    L25
  movdqa D92(%rip),%xmm1
  movdqa D90(%rip),%xmm0
  lea    0x400(%rdi),%rcx
  mov    %rdi,%rax
L32:
  movdqu (%rax),%xmm2
  movdqu 0x100(%rax),%xmm4
  add    $0x200,%rax
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0xf0(%rax),%xmm4
  movups %xmm2,-0x100(%rax)
  movdqu -0x1f0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x200(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0xe0(%rax),%xmm4
  movups %xmm2,-0xf0(%rax)
  movdqu -0x1e0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x1f0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0xd0(%rax),%xmm4
  movups %xmm2,-0xe0(%rax)
  movdqu -0x1d0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x1e0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0xc0(%rax),%xmm4
  movups %xmm2,-0xd0(%rax)
  movdqu -0x1c0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x1d0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0xb0(%rax),%xmm4
  movups %xmm2,-0xc0(%rax)
  movdqu -0x1b0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x1c0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0xa0(%rax),%xmm4
  movups %xmm2,-0xb0(%rax)
  pand   %xmm1,%xmm3
  movdqu -0x1a0(%rax),%xmm2
  por    %xmm5,%xmm3
  movups %xmm3,-0x1b0(%rax)
  movdqa %xmm2,%xmm5
  movdqa %xmm4,%xmm3
  pand   %xmm1,%xmm4
  psrlq  $0x10,%xmm2
  psllq  $0x10,%xmm3
  pand   %xmm0,%xmm5
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm3
  por    %xmm4,%xmm2
  movdqu -0x90(%rax),%xmm4
  por    %xmm5,%xmm3
  movups %xmm2,-0xa0(%rax)
  movdqu -0x190(%rax),%xmm2
  movups %xmm3,-0x1a0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm1,%xmm4
  movdqa %xmm2,%xmm5
  psllq  $0x10,%xmm3
  psrlq  $0x10,%xmm2
  pand   %xmm0,%xmm5
  pand   %xmm1,%xmm3
  pand   %xmm0,%xmm2
  por    %xmm5,%xmm3
  por    %xmm4,%xmm2
  movups %xmm3,-0x190(%rax)
  movups %xmm2,-0x90(%rax)
  movdqu -0x180(%rax),%xmm2
  movdqu -0x80(%rax),%xmm4
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0x70(%rax),%xmm4
  movups %xmm2,-0x80(%rax)
  movdqu -0x170(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x180(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0x60(%rax),%xmm4
  movups %xmm2,-0x70(%rax)
  movdqu -0x160(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x170(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0x50(%rax),%xmm4
  movups %xmm2,-0x60(%rax)
  movdqu -0x150(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x160(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0x40(%rax),%xmm4
  movups %xmm2,-0x50(%rax)
  movdqu -0x140(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x150(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0x30(%rax),%xmm4
  movups %xmm2,-0x40(%rax)
  movdqu -0x130(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x10,%xmm2
  movups %xmm3,-0x140(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x10,%xmm3
  movdqu -0x20(%rax),%xmm4
  movups %xmm2,-0x30(%rax)
  pand   %xmm1,%xmm3
  movdqu -0x120(%rax),%xmm2
  por    %xmm5,%xmm3
  movups %xmm3,-0x130(%rax)
  movdqa %xmm2,%xmm5
  movdqa %xmm4,%xmm3
  pand   %xmm1,%xmm4
  psrlq  $0x10,%xmm2
  psllq  $0x10,%xmm3
  pand   %xmm0,%xmm5
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm3
  por    %xmm4,%xmm2
  movdqu -0x10(%rax),%xmm4
  por    %xmm5,%xmm3
  movups %xmm2,-0x20(%rax)
  movdqu -0x110(%rax),%xmm2
  movups %xmm3,-0x120(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm1,%xmm4
  movdqa %xmm2,%xmm5
  psllq  $0x10,%xmm3
  psrlq  $0x10,%xmm2
  pand   %xmm1,%xmm3
  pand   %xmm0,%xmm5
  pand   %xmm0,%xmm2
  por    %xmm5,%xmm3
  por    %xmm4,%xmm2
  movups %xmm3,-0x110(%rax)
  movups %xmm2,-0x10(%rax)
  cmp    %rax,%rcx
  jne    L32
  movdqa D25(%rip),%xmm1
  movdqa D97(%rip),%xmm0
  mov    %rdi,%rax
L18:
  movdqu (%rax),%xmm2
  movdqu 0x80(%rax),%xmm4
  add    $0x100,%rax
  movdqa %xmm2,%xmm5
  psrlq  $0x8,%xmm2
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x8,%xmm3
  movdqu -0x70(%rax),%xmm4
  movups %xmm2,-0x80(%rax)
  movdqu -0xf0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x8,%xmm2
  movups %xmm3,-0x100(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x8,%xmm3
  movdqu -0x60(%rax),%xmm4
  movups %xmm2,-0x70(%rax)
  movdqu -0xe0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x8,%xmm2
  movups %xmm3,-0xf0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x8,%xmm3
  movdqu -0x50(%rax),%xmm4
  movups %xmm2,-0x60(%rax)
  movdqu -0xd0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x8,%xmm2
  movups %xmm3,-0xe0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x8,%xmm3
  movdqu -0x40(%rax),%xmm4
  movups %xmm2,-0x50(%rax)
  movdqu -0xc0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x8,%xmm2
  movups %xmm3,-0xd0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x8,%xmm3
  movdqu -0x30(%rax),%xmm4
  movups %xmm2,-0x40(%rax)
  movdqu -0xb0(%rax),%xmm2
  pand   %xmm1,%xmm3
  por    %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  psrlq  $0x8,%xmm2
  movups %xmm3,-0xc0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm4
  pand   %xmm0,%xmm5
  por    %xmm4,%xmm2
  psllq  $0x8,%xmm3
  movdqu -0x20(%rax),%xmm4
  movups %xmm2,-0x30(%rax)
  pand   %xmm1,%xmm3
  movdqu -0xa0(%rax),%xmm2
  por    %xmm5,%xmm3
  movups %xmm3,-0xb0(%rax)
  movdqa %xmm2,%xmm5
  movdqa %xmm4,%xmm3
  pand   %xmm1,%xmm4
  psrlq  $0x8,%xmm2
  psllq  $0x8,%xmm3
  pand   %xmm0,%xmm5
  pand   %xmm0,%xmm2
  pand   %xmm1,%xmm3
  por    %xmm4,%xmm2
  movdqu -0x10(%rax),%xmm4
  por    %xmm5,%xmm3
  movups %xmm2,-0x20(%rax)
  movdqu -0x90(%rax),%xmm2
  movups %xmm3,-0xa0(%rax)
  movdqa %xmm4,%xmm3
  pand   %xmm1,%xmm4
  movdqa %xmm2,%xmm5
  psllq  $0x8,%xmm3
  psrlq  $0x8,%xmm2
  pand   %xmm1,%xmm3
  pand   %xmm0,%xmm5
  pand   %xmm0,%xmm2
  por    %xmm5,%xmm3
  por    %xmm4,%xmm2
  movups %xmm3,-0x90(%rax)
  movups %xmm2,-0x10(%rax)
  cmp    %rcx,%rax
  jne    L18
  movdqa D76(%rip),%xmm2
  movdqa D116(%rip),%xmm1
  lea    0x40(%rdi),%rax
  lea    0x440(%rdi),%rdx
  nopl   0x0(%rax,%rax,1)
L35:
  movdqu -0x40(%rax),%xmm6
  movdqu (%rax),%xmm7
  sub    $0xffffffffffffff80,%rax
  movdqu -0xb0(%rax),%xmm5
  movdqu -0xa0(%rax),%xmm4
  movdqa %xmm6,%xmm0
  pand   %xmm1,%xmm7
  movdqu -0x90(%rax),%xmm3
  pand   %xmm2,%xmm6
  psllq  $0x4,%xmm0
  pand   %xmm2,%xmm0
  por    %xmm7,%xmm0
  movdqu -0x70(%rax),%xmm7
  movups %xmm0,-0xc0(%rax)
  movdqa %xmm5,%xmm0
  pand   %xmm2,%xmm5
  psllq  $0x4,%xmm0
  pand   %xmm1,%xmm7
  pand   %xmm2,%xmm0
  por    %xmm7,%xmm0
  movdqu -0x60(%rax),%xmm7
  movups %xmm0,-0xb0(%rax)
  movdqa %xmm4,%xmm0
  pand   %xmm2,%xmm4
  psllq  $0x4,%xmm0
  pand   %xmm1,%xmm7
  pand   %xmm2,%xmm0
  por    %xmm7,%xmm0
  movdqu -0x50(%rax),%xmm7
  movups %xmm0,-0xa0(%rax)
  movdqa %xmm3,%xmm0
  pand   %xmm2,%xmm3
  psllq  $0x4,%xmm0
  pand   %xmm1,%xmm7
  pand   %xmm2,%xmm0
  por    %xmm7,%xmm0
  movups %xmm0,-0x90(%rax)
  movdqu -0x80(%rax),%xmm0
  psrlq  $0x4,%xmm0
  pand   %xmm1,%xmm0
  por    %xmm6,%xmm0
  movups %xmm0,-0x80(%rax)
  movdqu -0x70(%rax),%xmm0
  psrlq  $0x4,%xmm0
  pand   %xmm1,%xmm0
  por    %xmm5,%xmm0
  movups %xmm0,-0x70(%rax)
  movdqu -0x60(%rax),%xmm0
  psrlq  $0x4,%xmm0
  pand   %xmm1,%xmm0
  por    %xmm4,%xmm0
  movups %xmm0,-0x60(%rax)
  movdqu -0x50(%rax),%xmm0
  psrlq  $0x4,%xmm0
  pand   %xmm1,%xmm0
  por    %xmm3,%xmm0
  movups %xmm0,-0x50(%rax)
  cmp    %rax,%rdx
  jne    L35
  movdqa D110(%rip),%xmm3
  movdqa D15(%rip),%xmm2
  lea    0x20(%rdi),%rax
  lea    0x420(%rdi),%rdx
L1:
  movdqu -0x20(%rax),%xmm4
  movdqu (%rax),%xmm5
  add    $0x40,%rax
  movdqu -0x50(%rax),%xmm1
  movdqa %xmm4,%xmm0
  pand   %xmm2,%xmm5
  pand   %xmm3,%xmm4
  psllq  $0x2,%xmm0
  pand   %xmm3,%xmm0
  por    %xmm5,%xmm0
  movdqu -0x30(%rax),%xmm5
  movups %xmm0,-0x60(%rax)
  movdqa %xmm1,%xmm0
  pand   %xmm3,%xmm1
  psllq  $0x2,%xmm0
  pand   %xmm2,%xmm5
  pand   %xmm3,%xmm0
  por    %xmm5,%xmm0
  movups %xmm0,-0x50(%rax)
  movdqu -0x40(%rax),%xmm0
  psrlq  $0x2,%xmm0
  pand   %xmm2,%xmm0
  por    %xmm4,%xmm0
  movups %xmm0,-0x40(%rax)
  movdqu -0x30(%rax),%xmm0
  psrlq  $0x2,%xmm0
  pand   %xmm2,%xmm0
  por    %xmm1,%xmm0
  movups %xmm0,-0x30(%rax)
  cmp    %rdx,%rax
  jne    L1
  movdqa D103(%rip),%xmm3
  movdqa D0(%rip),%xmm2
L45:
  movdqu (%rsi),%xmm1
  movdqu 0x10(%rsi),%xmm4
  add    $0x20,%rsi
  movdqa %xmm1,%xmm0
  pand   %xmm2,%xmm4
  pand   %xmm3,%xmm1
  psllq  $0x1,%xmm0
  pand   %xmm3,%xmm0
  por    %xmm4,%xmm0
  movups %xmm0,-0x20(%rsi)
  movdqu -0x10(%rsi),%xmm0
  psrlq  $0x1,%xmm0
  pand   %xmm2,%xmm0
  por    %xmm1,%xmm0
  movups %xmm0,-0x10(%rsi)
  cmp    %rsi,%rcx
  jne    L45
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D115
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D86
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D92
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D90
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D25
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D97
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D76
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D116
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D110
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D15
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D103
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D0
type_infered: byte[16]

tool: {"D115": [0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00]}

tool: {"D86": [0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff]}

tool: {"D92": [0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff]}

tool: {"D90": [0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00]}

tool: {"D25": [0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff]}

tool: {"D97": [0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00]}

tool: {"D76": [0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0]}

tool: {"D116": [0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f]}

tool: {"D110": [0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc]}

tool: {"D15": [0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33]}

tool: {"D103": [0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa]}

tool: {"D0": [0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55]}

assistant: ```c
void trasp64_128_88ccw(unsigned char *data) {
  int i, j;
  for (j = 0; j < 64; j += 64) {
    unsigned long long int t, b;
    for (i = 0; i < 32; i++) {
      t = ((unsigned long long int *)data)[2 * (j + i)];
      b = ((unsigned long long int *)data)[2 * (j + 32 + i)];
      ((unsigned long long int *)data)[2 * (j + i)] = (t & 0x00000000ffffffffULL) | ((b) << 32);
      ((unsigned long long int *)data)[2 * (j + 32 + i)] = ((t) >> 32) | (b & 0xffffffff00000000ULL);
      t = ((unsigned long long int *)data)[2 * (j + i) + 1];
      b = ((unsigned long long int *)data)[2 * (j + 32 + i) + 1];
      ((unsigned long long int *)data)[2 * (j + i) + 1] = (t & 0x00000000ffffffffULL) | ((b) << 32);
      ((unsigned long long int *)data)[2 * (j + 32 + i) + 1] = ((t) >> 32) | (b & 0xffffffff00000000ULL);
    }
  }
  for (j = 0; j < 64; j += 32) {
    unsigned long long int t, b;
    for (i = 0; i < 16; i++) {
      t = ((unsigned long long int *)data)[2 * (j + i)];
      b = ((unsigned long long int *)data)[2 * (j + 16 + i)];
      ((unsigned long long int *)data)[2 * (j + i)] = (t & 0x0000ffff0000ffffULL) | ((b & 0x0000ffff0000ffffULL) << 16);
      ((unsigned long long int *)data)[2 * (j + 16 + i)] = ((t & 0xffff0000ffff0000ULL) >> 16) | (b & 0xffff0000ffff0000ULL);
      t = ((unsigned long long int *)data)[2 * (j + i) + 1];
      b = ((unsigned long long int *)data)[2 * (j + 16 + i) + 1];
      ((unsigned long long int *)data)[2 * (j + i) + 1] = (t & 0x0000ffff0000ffffULL) | ((b & 0x0000ffff0000ffffULL) << 16);
      ((unsigned long long int *)data)[2 * (j + 16 + i) + 1] = ((t & 0xffff0000ffff0000ULL) >> 16) | (b & 0xffff0000ffff0000ULL);
    }
  }
  for (j = 0; j < 64; j += 16) {
    unsigned long long int t, b;
    for (i = 0; i < 8; i++) {
      t = ((unsigned long long int *)data)[2 * (j + i)];
      b = ((unsigned long long int *)data)[2 * (j + 8 + i)];
      ((unsigned long long int *)data)[2 * (j + i)] = (t & 0x00ff00ff00ff00ffULL) | ((b & 0x00ff00ff00ff00ffULL) << 8);
      ((unsigned long long int *)data)[2 * (j + 8 + i)] = ((t & 0xff00ff00ff00ff00ULL) >> 8) | (b & 0xff00ff00ff00ff00ULL);
      t = ((unsigned long long int *)data)[2 * (j + i) + 1];
      b = ((unsigned long long int *)data)[2 * (j + 8 + i) + 1];
      ((unsigned long long int *)data)[2 * (j + i) + 1] = (t & 0x00ff00ff00ff00ffULL) | ((b & 0x00ff00ff00ff00ffULL) << 8);
      ((unsigned long long int *)data)[2 * (j + 8 + i) + 1] = ((t & 0xff00ff00ff00ff00ULL) >> 8) | (b & 0xff00ff00ff00ff00ULL);
    }
  }
  for (j = 0; j < 64; j += 8) {
    unsigned long long int t, b;
    for (i = 0; i < 4; i++) {
      t = ((unsigned long long int *)data)[2 * (j + i)];
      b = ((unsigned long long int *)data)[2 * (j + 4 + i)];
      ((unsigned long long int *)data)[2 * (j + i)] = ((t & 0x0f0f0f0f0f0f0f0fULL) << 4) | (b & 0x0f0f0f0f0f0f0f0fULL);
      ((unsigned long long int *)data)[2 * (j + 4 + i)] = (t & 0xf0f0f0f0f0f0f0f0ULL) | ((b & 0xf0f0f0f0f0f0f0f0ULL) >> 4);
      t = ((unsigned long long int *)data)[2 * (j + i) + 1];
      b = ((unsigned long long int *)data)[2 * (j + 4 + i) + 1];
      ((unsigned long long int *)data)[2 * (j + i) + 1] = ((t & 0x0f0f0f0f0f0f0f0fULL) << 4) | (b & 0x0f0f0f0f0f0f0f0fULL);
      ((unsigned long long int *)data)[2 * (j + 4 + i) + 1] = (t & 0xf0f0f0f0f0f0f0f0ULL) | ((b & 0xf0f0f0f0f0f0f0f0ULL) >> 4);
    }
  }
  for (j = 0; j < 64; j += 4) {
    unsigned long long int t, b;
    for (i = 0; i < 2; i++) {
      t = ((unsigned long long int *)data)[2 * (j + i)];
      b = ((unsigned long long int *)data)[2 * (j + 2 + i)];
      ((unsigned long long int *)data)[2 * (j + i)] = ((t & 0x3333333333333333ULL) << 2) | (b & 0x3333333333333333ULL);
      ((unsigned long long int *)data)[2 * (j + 2 + i)] = (t & 0xccccccccccccccccULL) | ((b & 0xccccccccccccccccULL) >> 2);
      t = ((unsigned long long int *)data)[2 * (j + i) + 1];
      b = ((unsigned long long int *)data)[2 * (j + 2 + i) + 1];
      ((unsigned long long int *)data)[2 * (j + i) + 1] = ((t & 0x3333333333333333ULL) << 2) | (b & 0x3333333333333333ULL);
      ((unsigned long long int *)data)[2 * (j + 2 + i) + 1] = (t & 0xccccccccccccccccULL) | ((b & 0xccccccccccccccccULL) >> 2);
    }
  }
  for (j = 0; j < 64; j += 2) {
    unsigned long long int t, b;
    for (i = 0; i < 1; i++) {
      t = ((unsigned long long int *)data)[2 * (j + i)];
      b = ((unsigned long long int *)data)[2 * (j + 1 + i)];
      ((unsigned long long int *)data)[2 * (j + i)] = ((t & 0x5555555555555555ULL) << 1) | (b & 0x5555555555555555ULL);
      ((unsigned long long int *)data)[2 * (j + 1 + i)] = (t & 0xaaaaaaaaaaaaaaaaULL) | ((b & 0xaaaaaaaaaaaaaaaaULL) >> 1);
      t = ((unsigned long long int *)data)[2 * (j + i) + 1];
      b = ((unsigned long long int *)data)[2 * (j + 1 + i) + 1];
      ((unsigned long long int *)data)[2 * (j + i) + 1] = ((t & 0x5555555555555555ULL) << 1) | (b & 0x5555555555555555ULL);
      ((unsigned long long int *)data)[2 * (j + 1 + i) + 1] = (t & 0xaaaaaaaaaaaaaaaaULL) | ((b & 0xaaaaaaaaaaaaaaaaULL) >> 1);
    }
  }
}
```