user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<trasp_8_N>:
  endbr64
  movdqu (%rdi),%xmm1
  movdqu 0x20(%rdi),%xmm2
  mov    %rsi,%rcx
  mov    %rdi,%rax
  movdqa D23(%rip),%xmm14
  movdqu 0x10(%rdi),%xmm0
  mov    %edx,%esi
  movdqa %xmm1,%xmm11
  movdqu 0x20(%rdi),%xmm3
  movdqu 0x60(%rdi),%xmm4
  psrld  $0x8,%xmm11
  pand   %xmm14,%xmm2
  movdqa %xmm0,%xmm10
  movdqa D37(%rip),%xmm9
  psrld  $0x8,%xmm10
  pslld  $0x8,%xmm3
  movdqu 0x70(%rdi),%xmm5
  pand   %xmm14,%xmm4
  pand   %xmm9,%xmm11
  pand   %xmm9,%xmm10
  pand   %xmm9,%xmm1
  movdqu 0x60(%rdi),%xmm6
  por    %xmm2,%xmm11
  movdqu 0x30(%rdi),%xmm2
  pand   %xmm14,%xmm3
  pand   %xmm9,%xmm0
  pslld  $0x8,%xmm5
  por    %xmm1,%xmm3
  movdqu 0x40(%rdi),%xmm1
  movdqu 0xa0(%rdi),%xmm7
  pand   %xmm14,%xmm2
  pand   %xmm14,%xmm5
  movdqu 0xc0(%rdi),%xmm15
  por    %xmm2,%xmm10
  movdqu 0x30(%rdi),%xmm2
  movdqa %xmm1,%xmm13
  pand   %xmm9,%xmm1
  psrld  $0x8,%xmm13
  pslld  $0x8,%xmm6
  pand   %xmm14,%xmm7
  pslld  $0x8,%xmm2
  pand   %xmm9,%xmm13
  pand   %xmm14,%xmm6
  pand   %xmm14,%xmm2
  por    %xmm4,%xmm13
  movdqu 0x70(%rdi),%xmm4
  por    %xmm1,%xmm6
  por    %xmm0,%xmm2
  movdqu 0x50(%rdi),%xmm0
  movdqa %xmm15,%xmm8
  movdqu 0x90(%rdi),%xmm1
  pand   %xmm14,%xmm4
  psrld  $0x8,%xmm8
  pand   %xmm9,%xmm15
  movdqa %xmm0,%xmm12
  pand   %xmm9,%xmm0
  pand   %xmm9,%xmm8
  por    %xmm0,%xmm5
  psrld  $0x8,%xmm12
  movdqu 0x80(%rdi),%xmm0
  pand   %xmm9,%xmm12
  por    %xmm4,%xmm12
  movdqa %xmm0,%xmm4
  pand   %xmm9,%xmm0
  psrld  $0x8,%xmm4
  pand   %xmm9,%xmm4
  por    %xmm7,%xmm4
  movdqa %xmm1,%xmm7
  pand   %xmm9,%xmm1
  psrld  $0x8,%xmm7
  movaps %xmm4,-0x38(%rsp)
  movdqa %xmm7,%xmm4
  movdqu 0xb0(%rdi),%xmm7
  pand   %xmm9,%xmm4
  pand   %xmm14,%xmm7
  por    %xmm7,%xmm4
  movdqu 0xa0(%rdi),%xmm7
  movaps %xmm4,-0x28(%rsp)
  pslld  $0x8,%xmm7
  movdqa %xmm7,%xmm4
  movdqu 0xe0(%rdi),%xmm7
  pand   %xmm14,%xmm4
  por    %xmm0,%xmm4
  movdqu 0xb0(%rdi),%xmm0
  pand   %xmm14,%xmm7
  por    %xmm7,%xmm8
  movdqu 0xd0(%rdi),%xmm7
  pslld  $0x8,%xmm0
  pand   %xmm14,%xmm0
  psrld  $0x8,%xmm7
  por    %xmm1,%xmm0
  movdqu 0xf0(%rdi),%xmm1
  pand   %xmm9,%xmm7
  movaps %xmm0,-0x18(%rsp)
  movdqu 0xf0(%rdi),%xmm0
  pand   %xmm14,%xmm1
  por    %xmm1,%xmm7
  movdqu 0xe0(%rdi),%xmm1
  pslld  $0x8,%xmm0
  pand   %xmm14,%xmm0
  pslld  $0x8,%xmm1
  pand   %xmm14,%xmm1
  movdqa %xmm3,%xmm14
  por    %xmm15,%xmm1
  psrld  $0x10,%xmm3
  movdqu 0xd0(%rdi),%xmm15
  pand   %xmm15,%xmm9
  movdqa %xmm6,%xmm15
  por    %xmm9,%xmm0
  pslld  $0x10,%xmm15
  movdqa D17(%rip),%xmm9
  pand   %xmm9,%xmm14
  por    %xmm15,%xmm14
  movdqa %xmm5,%xmm15
  movups %xmm14,(%rdi)
  movdqa %xmm2,%xmm14
  pslld  $0x10,%xmm15
  pand   %xmm9,%xmm14
  psrld  $0x10,%xmm2
  por    %xmm15,%xmm14
  movdqa %xmm13,%xmm15
  movups %xmm14,0x10(%rdi)
  movdqa %xmm11,%xmm14
  pslld  $0x10,%xmm15
  pand   %xmm9,%xmm14
  psrld  $0x10,%xmm11
  por    %xmm15,%xmm14
  movdqa %xmm12,%xmm15
  movups %xmm14,0x20(%rdi)
  movdqa %xmm10,%xmm14
  pslld  $0x10,%xmm15
  pand   %xmm9,%xmm14
  psrld  $0x10,%xmm10
  por    %xmm15,%xmm14
  movups %xmm14,0x30(%rdi)
  movdqa D7(%rip),%xmm14
  pand   %xmm14,%xmm6
  pand   %xmm14,%xmm5
  pand   %xmm14,%xmm13
  por    %xmm6,%xmm3
  por    %xmm5,%xmm2
  movdqa -0x18(%rsp),%xmm6
  movdqa -0x38(%rsp),%xmm5
  movups %xmm3,0x40(%rdi)
  movdqa %xmm4,%xmm3
  pand   %xmm14,%xmm12
  por    %xmm13,%xmm11
  movups %xmm2,0x50(%rdi)
  movdqa %xmm1,%xmm2
  pand   %xmm9,%xmm3
  pand   %xmm14,%xmm1
  pslld  $0x10,%xmm2
  psrld  $0x10,%xmm4
  por    %xmm12,%xmm10
  movups %xmm11,0x60(%rdi)
  por    %xmm3,%xmm2
  movdqa %xmm6,%xmm3
  por    %xmm4,%xmm1
  movups %xmm10,0x70(%rdi)
  movups %xmm2,0x80(%rdi)
  movdqa %xmm0,%xmm2
  pand   %xmm9,%xmm3
  pand   %xmm14,%xmm0
  pslld  $0x10,%xmm2
  psrld  $0x10,%xmm6
  movups %xmm1,0xc0(%rdi)
  por    %xmm3,%xmm2
  movdqa %xmm5,%xmm3
  por    %xmm6,%xmm0
  movups %xmm2,0x90(%rdi)
  movdqa %xmm8,%xmm2
  pand   %xmm9,%xmm3
  pand   %xmm14,%xmm8
  pslld  $0x10,%xmm2
  psrld  $0x10,%xmm5
  movups %xmm0,0xd0(%rdi)
  por    %xmm3,%xmm2
  movdqa -0x28(%rsp),%xmm3
  por    %xmm5,%xmm8
  movups %xmm2,0xa0(%rdi)
  movdqa %xmm7,%xmm2
  pand   %xmm14,%xmm7
  pand   %xmm3,%xmm9
  pslld  $0x10,%xmm2
  movups %xmm8,0xe0(%rdi)
  psrld  $0x10,%xmm3
  por    %xmm9,%xmm2
  por    %xmm3,%xmm7
  movups %xmm2,0xb0(%rdi)
  movups %xmm7,0xf0(%rdi)
  test   %edx,%edx
  jle    L13
  movslq %edx,%rdi
  mov    %edx,%r8d
  lea    0x80(%rax,%rdi,4),%rdx
  lea    (%rcx,%rdi,8),%r9
  cmp    %rdx,%rcx
  setae  %dl
  cmp    %r9,%rax
  setae  %r9b
  or     %r9b,%dl
  je     L88
  cmp    $0x1,%esi
  je     L88
  lea    -0x1(%rsi),%edx
  cmp    $0x2,%edx
  jbe    L56
  mov    %esi,%edi
  xor    %edx,%edx
  shr    $0x2,%edi
  shl    $0x4,%rdi
  nopl   0x0(%rax)
L66:
  movdqu 0x80(%rax,%rdx,1),%xmm1
  movdqu (%rax,%rdx,1),%xmm0
  movdqa %xmm0,%xmm2
  punpckhdq %xmm1,%xmm0
  punpckldq %xmm1,%xmm2
  movups %xmm0,0x10(%rcx,%rdx,2)
  movups %xmm2,(%rcx,%rdx,2)
  add    $0x10,%rdx
  cmp    %rdx,%rdi
  jne    L66
  mov    %esi,%edi
  and    $0xfffffffc,%edi
  mov    %edi,%edx
  cmp    %esi,%edi
  je     L13
  sub    %edi,%esi
  mov    %esi,%r8d
  cmp    $0x1,%esi
  je     L91
L90:
  mov    %edi,%esi
  movq   (%rax,%rsi,4),%xmm0
  lea    (%rcx,%rsi,8),%rdi
  movq   0x80(%rax,%rsi,4),%xmm1
  mov    %r8d,%esi
  and    $0xfffffffe,%esi
  movdqa %xmm0,%xmm2
  punpckldq %xmm1,%xmm0
  add    %esi,%edx
  punpckldq %xmm1,%xmm2
  pshufd $0xe,%xmm0,%xmm0
  movq   %xmm2,(%rdi)
  movq   %xmm0,0x8(%rdi)
  cmp    %r8d,%esi
  je     L13
L91:
  movslq %edx,%rsi
  add    %edx,%edx
  mov    (%rax,%rsi,4),%edi
  movslq %edx,%rdx
  mov    %edi,(%rcx,%rdx,4)
  mov    0x80(%rax,%rsi,4),%eax
  mov    %eax,0x4(%rcx,%rdx,4)
  ret
L88:
  xor    %edx,%edx
  nopl   0x0(%rax)
L75:
  mov    (%rax,%rdx,4),%esi
  mov    %esi,(%rcx,%rdx,8)
  mov    0x80(%rax,%rdx,4),%esi
  mov    %esi,0x4(%rcx,%rdx,8)
  add    $0x1,%rdx
  cmp    %rdx,%rdi
  jne    L75
L13:
  ret
L56:
  xor    %edx,%edx
  xor    %edi,%edi
  jmp    L90
```

tool_calls: name: read_data
arguments: tag: D23
type: byte[16]
name: read_data
arguments: tag: D37
type: byte[16]
name: read_data
arguments: tag: D17
type: byte[16]
name: read_data
arguments: tag: D7
type: byte[16]

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

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

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

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

assistant: ```c
__attribute__((always_)) void trasp_8_N(unsigned char *in, unsigned char *out, int count) {
  int *ri = (int *)in;
  int *bdi = (int *)out;
  int j, i, k, g;
  for (j = 0; j < 8; j += 2) {
    for (i = 0; i < 1; i++) {
      for (k = 0; k < (32 / 8 * 2); k++) {
        unsigned int t, b;
        t = ri[(32 / 8 * 2) * (j + i) + k];
        b = ri[(32 / 8 * 2) * (j + i + 1) + k];
        ri[(32 / 8 * 2) * (j + i) + k] = (t & 0x00ff00ff) | ((b & 0x00ff00ff) << 8);
        ri[(32 / 8 * 2) * (j + i + 1) + k] = ((t & 0xff00ff00) >> 8) | (b & 0xff00ff00);
      }
    }
  }
  for (j = 0; j < 8; j += 4) {
    for (i = 0; i < 2; i++) {
      for (k = 0; k < (32 / 8 * 2); k++) {
        unsigned int t, b;
        t = ri[(32 / 8 * 2) * (j + i) + k];
        b = ri[(32 / 8 * 2) * (j + i + 2) + k];
        ri[(32 / 8 * 2) * (j + i) + k] = (t & 0x0000ffff) | ((b) << 16);
        ri[(32 / 8 * 2) * (j + i + 2) + k] = ((t) >> 16) | (b & 0xffff0000);
      }
    }
  }
  for (g = 0; g < count; g++) {
    bdi[2 * g] = ri[g];
    bdi[2 * g + 1] = ri[32 + g];
  }
}
```