user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<string_to_binary>:
  endbr64
  test   %edi,%edi
  mov    %rsi,%r9
  lea    0x7(%rdi),%esi
  mov    %edi,%eax
  cmovns %edi,%esi
  and    $0x7,%eax
  mov    %rdx,%r8
  sar    $0x3,%esi
  cmp    $0x1,%eax
  sbb    $0x0,%esi
  test   %esi,%esi
  jle    L181
  movslq %esi,%r10
  push   %rbp
  lea    -0x1(%rsi),%ecx
  push   %rbx
  mov    %r10,%rax
  shl    $0x6,%rax
  add    %r9,%rax
  sub    $0x2f0,%rsp
  cmp    %rax,%rdx
  lea    (%rdx,%r10,1),%rdx
  setae  %al
  cmp    %rdx,%r9
  setae  %dl
  or     %dl,%al
  je     L144
  cmp    $0xe,%ecx
  jbe    L144
  mov    %esi,%ecx
  mov    %r8,%rdx
  pxor   %xmm15,%xmm15
  mov    %r9,%rax
  shr    $0x4,%ecx
  pxor   %xmm11,%xmm11
  pxor   %xmm12,%xmm12
  sub    $0x1,%ecx
  shl    $0x4,%rcx
  lea    0x10(%r8,%rcx,1),%rcx
  nopl   0x0(%rax,%rax,1)
L156:
  movdqu (%rdx),%xmm6
  add    $0x10,%rdx
  movdqa D80(%rip),%xmm0
  add    $0x400,%rax
  pand   %xmm6,%xmm0
  movdqa %xmm0,%xmm1
  punpckhbw %xmm15,%xmm0
  punpcklbw %xmm15,%xmm1
  movdqa %xmm0,%xmm2
  punpckhwd %xmm11,%xmm0
  movdqa %xmm1,%xmm3
  movdqa %xmm0,%xmm10
  punpcklwd %xmm11,%xmm2
  punpcklwd %xmm11,%xmm3
  movdqa %xmm2,%xmm14
  punpckhdq %xmm12,%xmm2
  movdqa %xmm3,%xmm13
  movdqa %xmm3,%xmm7
  movdqa %xmm0,%xmm3
  movaps %xmm2,-0x28(%rsp)
  movdqa %xmm6,%xmm0
  punpckhwd %xmm11,%xmm1
  punpckhdq %xmm12,%xmm3
  psrlw  $0x1,%xmm0
  movdqa %xmm1,%xmm4
  movdqa %xmm1,%xmm5
  movaps %xmm3,-0x8(%rsp)
  punpckhdq %xmm12,%xmm7
  punpckldq %xmm12,%xmm14
  punpckhdq %xmm12,%xmm5
  movaps %xmm7,-0x68(%rsp)
  punpckldq %xmm12,%xmm10
  punpckldq %xmm12,%xmm13
  pand   D36(%rip),%xmm0
  pand   D80(%rip),%xmm0
  movaps %xmm5,-0x48(%rsp)
  punpckldq %xmm12,%xmm4
  movaps %xmm14,-0x38(%rsp)
  movdqa %xmm0,%xmm2
  punpckhbw %xmm15,%xmm0
  movaps %xmm10,-0x18(%rsp)
  punpcklbw %xmm15,%xmm2
  movdqa %xmm0,%xmm1
  punpckhwd %xmm11,%xmm0
  movaps %xmm13,-0x78(%rsp)
  movdqa %xmm2,%xmm3
  punpcklwd %xmm11,%xmm1
  punpckhwd %xmm11,%xmm2
  movaps %xmm4,-0x58(%rsp)
  punpcklwd %xmm11,%xmm3
  movdqa %xmm2,%xmm7
  punpckhdq %xmm12,%xmm2
  movdqa %xmm3,%xmm9
  movdqa %xmm3,%xmm8
  movdqa %xmm1,%xmm3
  movaps %xmm2,0x38(%rsp)
  punpckhdq %xmm12,%xmm1
  punpckldq %xmm12,%xmm3
  punpckhdq %xmm12,%xmm8
  movaps %xmm1,0x58(%rsp)
  movdqa %xmm0,%xmm1
  punpckhdq %xmm12,%xmm0
  punpckldq %xmm12,%xmm9
  movaps %xmm0,0x78(%rsp)
  movdqa %xmm6,%xmm0
  punpckldq %xmm12,%xmm1
  punpckldq %xmm12,%xmm7
  psrlw  $0x2,%xmm0
  pand   D13(%rip),%xmm0
  pand   D80(%rip),%xmm0
  movaps %xmm1,0x68(%rsp)
  movaps %xmm3,0x48(%rsp)
  movdqa %xmm0,%xmm1
  movaps %xmm8,0x18(%rsp)
  punpckhbw %xmm15,%xmm0
  punpcklbw %xmm15,%xmm1
  movdqa %xmm0,%xmm2
  punpckhwd %xmm11,%xmm0
  movaps %xmm9,0x8(%rsp)
  movdqa %xmm1,%xmm3
  punpckhwd %xmm11,%xmm1
  punpcklwd %xmm11,%xmm2
  movaps %xmm7,0x28(%rsp)
  punpcklwd %xmm11,%xmm3
  movdqa %xmm1,%xmm5
  movdqa %xmm3,%xmm8
  punpckhdq %xmm12,%xmm5
  punpckldq %xmm12,%xmm8
  movaps %xmm5,0xa8(%rsp)
  movdqa %xmm8,%xmm14
  movdqa %xmm3,%xmm8
  movdqa %xmm2,%xmm3
  punpckhdq %xmm12,%xmm8
  punpckldq %xmm12,%xmm3
  punpckhdq %xmm12,%xmm2
  movaps %xmm8,0x88(%rsp)
  movdqa %xmm1,%xmm8
  movdqa %xmm0,%xmm1
  punpckhdq %xmm12,%xmm0
  movaps %xmm0,0xe8(%rsp)
  movdqa %xmm6,%xmm0
  punpckldq %xmm12,%xmm1
  punpckldq %xmm12,%xmm8
  psrlw  $0x3,%xmm0
  pand   D54(%rip),%xmm0
  pand   D80(%rip),%xmm0
  movaps %xmm1,0xd8(%rsp)
  movaps %xmm3,0xb8(%rsp)
  movdqa %xmm0,%xmm1
  punpckhbw %xmm15,%xmm0
  movaps %xmm2,0xc8(%rsp)
  punpcklbw %xmm15,%xmm1
  movdqa %xmm0,%xmm2
  punpckhwd %xmm11,%xmm0
  movaps %xmm8,0x98(%rsp)
  movdqa %xmm1,%xmm3
  punpckhwd %xmm11,%xmm1
  punpcklwd %xmm11,%xmm2
  punpcklwd %xmm11,%xmm3
  movdqa %xmm3,%xmm5
  movdqa %xmm3,%xmm10
  movdqa %xmm1,%xmm3
  punpckhdq %xmm12,%xmm5
  punpckldq %xmm12,%xmm3
  punpckhdq %xmm12,%xmm1
  movaps %xmm5,0xf8(%rsp)
  movdqa %xmm2,%xmm5
  punpckhdq %xmm12,%xmm2
  punpckldq %xmm12,%xmm10
  movaps %xmm3,0x108(%rsp)
  punpckldq %xmm12,%xmm5
  movaps %xmm2,0x138(%rsp)
  movdqa %xmm0,%xmm2
  punpckhdq %xmm12,%xmm0
  movaps %xmm0,0x158(%rsp)
  movdqa %xmm6,%xmm0
  punpckldq %xmm12,%xmm2
  psrlw  $0x4,%xmm0
  pand   D130(%rip),%xmm0
  pand   D80(%rip),%xmm0
  movaps %xmm1,0x118(%rsp)
  movaps %xmm2,0x148(%rsp)
  movdqa %xmm0,%xmm3
  punpckhbw %xmm15,%xmm0
  movaps %xmm5,0x128(%rsp)
  punpcklbw %xmm15,%xmm3
  movdqa %xmm0,%xmm1
  punpckhwd %xmm11,%xmm0
  movdqa %xmm3,%xmm2
  punpcklwd %xmm11,%xmm3
  punpcklwd %xmm11,%xmm1
  movdqa %xmm3,%xmm8
  punpckhdq %xmm12,%xmm3
  punpckhwd %xmm11,%xmm2
  movaps %xmm3,0x168(%rsp)
  movdqa %xmm1,%xmm3
  punpckhdq %xmm12,%xmm1
  movdqa %xmm2,%xmm7
  movdqa %xmm2,%xmm5
  punpckldq %xmm12,%xmm7
  punpckldq %xmm12,%xmm3
  movaps %xmm1,0x1a8(%rsp)
  movdqa %xmm0,%xmm1
  punpckhdq %xmm12,%xmm0
  punpckhdq %xmm12,%xmm5
  movaps %xmm7,0x178(%rsp)
  movaps %xmm0,0x1c8(%rsp)
  movdqa %xmm6,%xmm0
  punpckldq %xmm12,%xmm1
  punpckldq %xmm12,%xmm8
  psrlw  $0x5,%xmm0
  pand   D29(%rip),%xmm0
  pand   D80(%rip),%xmm0
  movaps %xmm1,0x1b8(%rsp)
  movaps %xmm5,0x188(%rsp)
  movdqa %xmm0,%xmm2
  punpckhbw %xmm15,%xmm0
  movaps %xmm3,0x198(%rsp)
  punpcklbw %xmm15,%xmm2
  movdqa %xmm0,%xmm1
  punpckhwd %xmm11,%xmm0
  punpcklwd %xmm11,%xmm1
  movdqa %xmm2,%xmm4
  punpckhwd %xmm11,%xmm2
  movdqa %xmm2,%xmm7
  movdqa %xmm2,%xmm5
  movdqa %xmm1,%xmm3
  movdqa %xmm1,%xmm2
  movdqa %xmm0,%xmm1
  punpckhdq %xmm12,%xmm0
  punpckldq %xmm12,%xmm2
  punpckhdq %xmm12,%xmm3
  punpckldq %xmm12,%xmm1
  movaps %xmm0,0x228(%rsp)
  movdqa %xmm6,%xmm0
  movaps %xmm2,0x1f8(%rsp)
  punpckldq %xmm12,%xmm7
  punpckhdq %xmm12,%xmm5
  psrlw  $0x6,%xmm0
  pand   D91(%rip),%xmm0
  pand   D80(%rip),%xmm0
  movaps %xmm3,0x208(%rsp)
  movaps %xmm1,0x218(%rsp)
  psrlw  $0x7,%xmm6
  pand   D80(%rip),%xmm6
  punpcklwd %xmm11,%xmm4
  movdqa %xmm0,%xmm2
  punpckhbw %xmm15,%xmm0
  movdqa %xmm4,%xmm9
  movaps %xmm7,0x1d8(%rsp)
  punpcklbw %xmm15,%xmm2
  movdqa %xmm0,%xmm3
  punpckhwd %xmm11,%xmm0
  movaps %xmm5,0x1e8(%rsp)
  movdqa %xmm2,%xmm1
  punpckhwd %xmm11,%xmm2
  punpcklwd %xmm11,%xmm3
  movdqa %xmm2,%xmm7
  punpckhdq %xmm12,%xmm2
  punpcklwd %xmm11,%xmm1
  punpckldq %xmm12,%xmm7
  movdqa %xmm1,%xmm5
  punpckldq %xmm12,%xmm9
  movaps %xmm2,0x248(%rsp)
  movdqa %xmm3,%xmm2
  punpckhdq %xmm12,%xmm3
  punpckldq %xmm12,%xmm5
  movaps %xmm7,0x238(%rsp)
  punpckldq %xmm12,%xmm2
  punpckhdq %xmm12,%xmm4
  punpckhdq %xmm12,%xmm1
  movaps %xmm3,0x268(%rsp)
  movdqa %xmm0,%xmm3
  punpckhdq %xmm12,%xmm0
  movaps %xmm2,0x258(%rsp)
  movaps %xmm0,0x288(%rsp)
  movdqa %xmm6,%xmm0
  punpckldq %xmm12,%xmm3
  punpckhbw %xmm15,%xmm6
  punpcklbw %xmm15,%xmm0
  movaps %xmm3,0x278(%rsp)
  movdqa %xmm6,%xmm3
  punpckhwd %xmm11,%xmm6
  movdqa %xmm0,%xmm7
  punpcklwd %xmm11,%xmm3
  punpcklwd %xmm11,%xmm0
  punpckhwd %xmm11,%xmm7
  movdqa %xmm3,%xmm13
  movdqa %xmm0,%xmm3
  movdqa %xmm7,%xmm2
  punpckhdq %xmm12,%xmm7
  punpckldq %xmm12,%xmm3
  movaps %xmm7,0x298(%rsp)
  movdqa %xmm13,%xmm7
  punpckhdq %xmm12,%xmm0
  punpckldq %xmm12,%xmm2
  punpckldq %xmm12,%xmm7
  movaps %xmm7,0x2a8(%rsp)
  movdqa %xmm13,%xmm7
  movdqa %xmm6,%xmm13
  punpckhdq %xmm12,%xmm6
  movaps %xmm6,0x2d8(%rsp)
  movdqa %xmm3,%xmm6
  punpckldq %xmm12,%xmm13
  punpckhqdq %xmm10,%xmm3
  punpcklqdq %xmm10,%xmm6
  movdqa %xmm5,%xmm10
  punpckhdq %xmm12,%xmm7
  movaps %xmm13,0x2c8(%rsp)
  punpcklqdq %xmm14,%xmm10
  movdqa 0x8(%rsp),%xmm13
  punpckhqdq %xmm14,%xmm5
  movaps %xmm7,0x2b8(%rsp)
  movdqa %xmm10,%xmm7
  movdqa %xmm9,%xmm10
  movdqa %xmm8,%xmm14
  punpcklqdq %xmm13,%xmm10
  punpckhqdq %xmm13,%xmm9
  movdqa -0x78(%rsp),%xmm13
  punpcklqdq %xmm13,%xmm14
  punpckhqdq %xmm13,%xmm8
  movdqa %xmm6,%xmm13
  punpcklqdq %xmm10,%xmm13
  punpckhqdq %xmm10,%xmm6
  movdqa %xmm3,%xmm10
  punpcklqdq %xmm9,%xmm10
  punpckhqdq %xmm9,%xmm3
  movdqa %xmm7,%xmm9
  punpcklqdq %xmm14,%xmm9
  punpckhqdq %xmm14,%xmm7
  movdqa %xmm5,%xmm14
  punpcklqdq %xmm8,%xmm14
  punpckhqdq %xmm8,%xmm5
  movdqa %xmm13,%xmm8
  punpcklqdq %xmm9,%xmm8
  punpckhqdq %xmm9,%xmm13
  movdqa %xmm6,%xmm9
  punpcklqdq %xmm7,%xmm9
  punpckhqdq %xmm7,%xmm6
  movups %xmm13,-0x3f0(%rax)
  movdqa 0x88(%rsp),%xmm13
  movups %xmm9,-0x3e0(%rax)
  movdqa %xmm10,%xmm9
  punpckhqdq %xmm14,%xmm10
  punpcklqdq %xmm14,%xmm9
  movdqa %xmm3,%xmm14
  movups %xmm6,-0x3d0(%rax)
  movdqa 0xf8(%rsp),%xmm6
  punpcklqdq %xmm5,%xmm14
  movups %xmm9,-0x3c0(%rax)
  punpckhqdq %xmm5,%xmm3
  movdqa 0x18(%rsp),%xmm9
  movups %xmm10,-0x3b0(%rax)
  movdqa %xmm4,%xmm10
  movups %xmm14,-0x3a0(%rax)
  movdqa %xmm0,%xmm14
  punpckhqdq %xmm6,%xmm0
  punpcklqdq %xmm9,%xmm10
  punpcklqdq %xmm6,%xmm14
  movdqa -0x68(%rsp),%xmm6
  punpckhqdq %xmm9,%xmm4
  movups %xmm8,-0x400(%rax)
  movups %xmm3,-0x390(%rax)
  movdqa %xmm10,%xmm8
  movdqa %xmm14,%xmm3
  movdqa 0x168(%rsp),%xmm10
  movdqa %xmm1,%xmm14
  punpckhqdq %xmm13,%xmm1
  punpcklqdq %xmm13,%xmm14
  movdqa 0x28(%rsp),%xmm13
  movdqa %xmm14,%xmm5
  movdqa %xmm10,%xmm14
  punpckhqdq %xmm6,%xmm10
  movdqa %xmm10,%xmm9
  movdqa %xmm3,%xmm10
  punpcklqdq %xmm6,%xmm14
  punpcklqdq %xmm8,%xmm10
  punpckhqdq %xmm8,%xmm3
  movdqa %xmm10,%xmm6
  movdqa %xmm0,%xmm10
  punpckhqdq %xmm4,%xmm0
  punpcklqdq %xmm4,%xmm10
  movdqa %xmm10,%xmm8
  movdqa %xmm5,%xmm10
  punpckhqdq %xmm14,%xmm5
  punpcklqdq %xmm14,%xmm10
  movdqa %xmm10,%xmm4
  movdqa %xmm1,%xmm10
  punpckhqdq %xmm9,%xmm1
  punpcklqdq %xmm9,%xmm10
  movdqa %xmm6,%xmm9
  punpckhqdq %xmm4,%xmm6
  movdqa %xmm10,%xmm7
  movdqa %xmm3,%xmm10
  punpckhqdq %xmm5,%xmm3
  movups %xmm6,-0x370(%rax)
  punpcklqdq %xmm5,%xmm10
  movups %xmm3,-0x350(%rax)
  punpcklqdq %xmm4,%xmm9
  movdqa 0x108(%rsp),%xmm6
  movups %xmm10,-0x360(%rax)
  movdqa %xmm8,%xmm10
  punpckhqdq %xmm7,%xmm8
  punpcklqdq %xmm7,%xmm10
  movups %xmm8,-0x330(%rax)
  movdqa 0x98(%rsp),%xmm8
  movups %xmm10,-0x340(%rax)
  movdqa %xmm0,%xmm10
  punpckhqdq %xmm1,%xmm0
  punpcklqdq %xmm1,%xmm10
  movups %xmm0,-0x310(%rax)
  movups %xmm10,-0x320(%rax)
  movdqa %xmm2,%xmm10
  punpckhqdq %xmm6,%xmm2
  punpcklqdq %xmm6,%xmm10
  movups %xmm9,-0x380(%rax)
  movdqa 0x238(%rsp),%xmm6
  movdqa %xmm10,%xmm0
  movdqa %xmm6,%xmm10
  punpcklqdq %xmm8,%xmm10
  movdqa %xmm10,%xmm3
  movdqa %xmm6,%xmm10
  punpckhqdq %xmm8,%xmm10
  movdqa 0x178(%rsp),%xmm8
  movdqa %xmm10,%xmm1
  movdqa 0x1d8(%rsp),%xmm10
  movdqa -0x58(%rsp),%xmm4
  movdqa 0x38(%rsp),%xmm9
  movdqa %xmm10,%xmm6
  punpckhqdq %xmm13,%xmm10
  movdqa %xmm10,%xmm7
  movdqa %xmm8,%xmm10
  punpcklqdq %xmm13,%xmm6
  movdqa 0xa8(%rsp),%xmm13
  punpcklqdq %xmm4,%xmm10
  movdqa %xmm10,%xmm5
  movdqa %xmm8,%xmm10
  punpckhqdq %xmm4,%xmm10
  movdqa %xmm0,%xmm4
  punpckhqdq %xmm6,%xmm0
  movdqa %xmm10,%xmm8
  movdqa %xmm2,%xmm10
  punpcklqdq %xmm6,%xmm4
  punpcklqdq %xmm7,%xmm10
  punpckhqdq %xmm7,%xmm2
  movdqa %xmm10,%xmm6
  movdqa %xmm3,%xmm10
  punpckhqdq %xmm5,%xmm3
  punpcklqdq %xmm5,%xmm10
  movdqa %xmm10,%xmm7
  movdqa %xmm1,%xmm10
  punpckhqdq %xmm8,%xmm1
  punpcklqdq %xmm8,%xmm10
  movdqa 0x118(%rsp),%xmm8
  movdqa %xmm10,%xmm5
  movdqa %xmm4,%xmm10
  punpckhqdq %xmm7,%xmm4
  punpcklqdq %xmm7,%xmm10
  movups %xmm4,-0x2f0(%rax)
  movdqa %xmm0,%xmm4
  punpckhqdq %xmm3,%xmm0
  movups %xmm10,-0x300(%rax)
  movdqa %xmm6,%xmm10
  punpckhqdq %xmm5,%xmm6
  punpcklqdq %xmm3,%xmm4
  punpcklqdq %xmm5,%xmm10
  movups %xmm6,-0x2b0(%rax)
  movdqa 0x298(%rsp),%xmm6
  movdqa 0x48(%rsp),%xmm7
  movups %xmm10,-0x2c0(%rax)
  movdqa %xmm2,%xmm10
  punpckhqdq %xmm1,%xmm2
  punpcklqdq %xmm1,%xmm10
  movups %xmm0,-0x2d0(%rax)
  movups %xmm10,-0x2a0(%rax)
  movdqa %xmm6,%xmm10
  punpcklqdq %xmm8,%xmm10
  movups %xmm4,-0x2e0(%rax)
  movdqa -0x48(%rsp),%xmm4
  movdqa %xmm10,%xmm1
  movdqa %xmm6,%xmm10
  movdqa 0x248(%rsp),%xmm6
  movups %xmm2,-0x290(%rax)
  punpckhqdq %xmm8,%xmm10
  movdqa 0x188(%rsp),%xmm8
  movdqa %xmm10,%xmm0
  movdqa %xmm6,%xmm10
  punpckhqdq %xmm13,%xmm6
  punpcklqdq %xmm13,%xmm10
  movdqa %xmm6,%xmm2
  movdqa %xmm8,%xmm5
  movdqa 0x1e8(%rsp),%xmm13
  punpcklqdq %xmm4,%xmm5
  punpckhqdq %xmm4,%xmm8
  movdqa %xmm10,%xmm3
  movdqa %xmm13,%xmm6
  movdqa %xmm13,%xmm10
  movdqa %xmm1,%xmm4
  movdqa 0x128(%rsp),%xmm13
  punpcklqdq %xmm9,%xmm6
  punpckhqdq %xmm9,%xmm10
  movdqa 0xb8(%rsp),%xmm9
  punpcklqdq %xmm6,%xmm4
  punpckhqdq %xmm6,%xmm1
  movdqa %xmm0,%xmm6
  punpcklqdq %xmm10,%xmm6
  punpckhqdq %xmm10,%xmm0
  movdqa %xmm3,%xmm10
  punpcklqdq %xmm5,%xmm10
  punpckhqdq %xmm5,%xmm3
  movdqa %xmm2,%xmm5
  punpcklqdq %xmm8,%xmm5
  punpckhqdq %xmm8,%xmm2
  movdqa %xmm4,%xmm8
  punpckhqdq %xmm10,%xmm4
  punpcklqdq %xmm10,%xmm8
  movups %xmm4,-0x270(%rax)
  movdqa %xmm1,%xmm4
  punpckhqdq %xmm3,%xmm1
  punpcklqdq %xmm3,%xmm4
  movups %xmm8,-0x280(%rax)
  movdqa 0x2a8(%rsp),%xmm8
  movups %xmm4,-0x260(%rax)
  movdqa %xmm6,%xmm4
  punpckhqdq %xmm5,%xmm6
  punpcklqdq %xmm5,%xmm4
  movdqa %xmm0,%xmm5
  punpckhqdq %xmm2,%xmm0
  movups %xmm1,-0x250(%rax)
  punpcklqdq %xmm2,%xmm5
  movups %xmm4,-0x240(%rax)
  movdqa %xmm8,%xmm4
  movups %xmm5,-0x220(%rax)
  movdqa %xmm8,%xmm5
  punpcklqdq %xmm13,%xmm4
  movdqa 0x198(%rsp),%xmm8
  punpckhqdq %xmm13,%xmm5
  movups %xmm0,-0x210(%rax)
  movdqa %xmm4,%xmm1
  movdqa %xmm5,%xmm0
  movups %xmm6,-0x230(%rax)
  movdqa 0x258(%rsp),%xmm5
  movdqa 0x1f8(%rsp),%xmm6
  movdqa -0x38(%rsp),%xmm14
  movdqa 0x138(%rsp),%xmm13
  movdqa %xmm5,%xmm4
  punpckhqdq %xmm9,%xmm5
  punpcklqdq %xmm9,%xmm4
  movdqa %xmm5,%xmm2
  movdqa %xmm6,%xmm5
  movdqa 0xc8(%rsp),%xmm9
  movdqa %xmm4,%xmm3
  movdqa %xmm8,%xmm4
  punpckhqdq %xmm14,%xmm8
  punpcklqdq %xmm7,%xmm5
  punpckhqdq %xmm7,%xmm6
  movdqa %xmm8,%xmm7
  movdqa %xmm1,%xmm8
  punpckhqdq %xmm5,%xmm1
  punpcklqdq %xmm14,%xmm4
  movdqa 0x58(%rsp),%xmm14
  punpcklqdq %xmm5,%xmm8
  movdqa %xmm0,%xmm5
  punpckhqdq %xmm6,%xmm0
  punpcklqdq %xmm6,%xmm5
  movdqa %xmm3,%xmm6
  punpckhqdq %xmm4,%xmm3
  punpcklqdq %xmm4,%xmm6
  movdqa %xmm2,%xmm4
  punpckhqdq %xmm7,%xmm2
  punpcklqdq %xmm7,%xmm4
  movdqa %xmm8,%xmm7
  punpckhqdq %xmm6,%xmm8
  punpcklqdq %xmm6,%xmm7
  movdqa %xmm1,%xmm6
  movups %xmm8,-0x1f0(%rax)
  punpckhqdq %xmm3,%xmm1
  punpcklqdq %xmm3,%xmm6
  movups %xmm1,-0x1d0(%rax)
  movdqa 0x2b8(%rsp),%xmm8
  movups %xmm6,-0x1e0(%rax)
  movdqa %xmm5,%xmm6
  punpckhqdq %xmm4,%xmm5
  movups %xmm5,-0x1b0(%rax)
  movdqa %xmm0,%xmm5
  punpckhqdq %xmm2,%xmm0
  punpcklqdq %xmm4,%xmm6
  punpcklqdq %xmm2,%xmm5
  movups %xmm0,-0x190(%rax)
  movdqa -0x28(%rsp),%xmm4
  movups %xmm5,-0x1a0(%rax)
  movdqa %xmm8,%xmm5
  punpcklqdq %xmm13,%xmm5
  movups %xmm6,-0x1c0(%rax)
  movdqa %xmm5,%xmm1
  movdqa %xmm8,%xmm5
  movups %xmm7,-0x200(%rax)
  punpckhqdq %xmm13,%xmm5
  movdqa 0x268(%rsp),%xmm13
  movdqa %xmm5,%xmm0
  movdqa %xmm13,%xmm5
  punpcklqdq %xmm9,%xmm5
  movdqa %xmm5,%xmm3
  movdqa %xmm13,%xmm5
  movdqa 0x278(%rsp),%xmm13
  punpckhqdq %xmm9,%xmm5
  movdqa 0x208(%rsp),%xmm9
  movdqa %xmm5,%xmm2
  movdqa %xmm9,%xmm5
  punpcklqdq %xmm14,%xmm5
  movdqa %xmm5,%xmm6
  movdqa %xmm9,%xmm5
  movdqa 0x218(%rsp),%xmm9
  punpckhqdq %xmm14,%xmm5
  movdqa 0x1a8(%rsp),%xmm14
  movdqa %xmm5,%xmm7
  movdqa %xmm14,%xmm8
  movdqa %xmm14,%xmm5
  movdqa %xmm3,%xmm14
  punpcklqdq %xmm4,%xmm5
  punpckhqdq %xmm4,%xmm8
  movdqa %xmm1,%xmm4
  punpcklqdq %xmm5,%xmm14
  punpckhqdq %xmm5,%xmm3
  punpcklqdq %xmm6,%xmm4
  punpckhqdq %xmm6,%xmm1
  movdqa %xmm2,%xmm5
  movdqa %xmm0,%xmm6
  punpcklqdq %xmm8,%xmm5
  punpckhqdq %xmm8,%xmm2
  punpcklqdq %xmm7,%xmm6
  movdqa %xmm4,%xmm8
  punpckhqdq %xmm7,%xmm0
  punpckhqdq %xmm14,%xmm4
  movdqa 0x68(%rsp),%xmm7
  punpcklqdq %xmm14,%xmm8
  movdqa %xmm6,%xmm14
  punpckhqdq %xmm5,%xmm6
  movups %xmm4,-0x170(%rax)
  punpcklqdq %xmm5,%xmm14
  movdqa %xmm1,%xmm4
  movups %xmm8,-0x180(%rax)
  movdqa %xmm0,%xmm5
  punpcklqdq %xmm3,%xmm4
  punpcklqdq %xmm2,%xmm5
  punpckhqdq %xmm2,%xmm0
  movdqa 0x2c8(%rsp),%xmm8
  movdqa 0x148(%rsp),%xmm2
  movups %xmm4,-0x160(%rax)
  punpckhqdq %xmm3,%xmm1
  movdqa 0xd8(%rsp),%xmm4
  movups %xmm5,-0x120(%rax)
  movdqa %xmm8,%xmm5
  movdqa %xmm13,%xmm3
  punpcklqdq %xmm2,%xmm5
  punpckhqdq %xmm2,%xmm8
  movdqa %xmm13,%xmm2
  movups %xmm0,-0x110(%rax)
  punpcklqdq %xmm4,%xmm2
  movdqa %xmm5,%xmm0
  punpckhqdq %xmm4,%xmm3
  movups %xmm1,-0x150(%rax)
  movdqa %xmm9,%xmm4
  movdqa %xmm8,%xmm1
  movdqa %xmm9,%xmm5
  movups %xmm14,-0x140(%rax)
  punpcklqdq %xmm7,%xmm4
  movdqa %xmm0,%xmm8
  movdqa 0x1b8(%rsp),%xmm14
  movups %xmm6,-0x130(%rax)
  movdqa -0x18(%rsp),%xmm10
  punpckhqdq %xmm7,%xmm5
  punpcklqdq %xmm4,%xmm8
  punpckhqdq %xmm4,%xmm0
  movdqa %xmm1,%xmm4
  movdqa %xmm14,%xmm13
  movdqa %xmm3,%xmm9
  movdqa 0xe8(%rsp),%xmm7
  punpckhqdq %xmm10,%xmm14
  punpcklqdq %xmm5,%xmm4
  punpcklqdq %xmm10,%xmm13
  movdqa 0x78(%rsp),%xmm6
  punpcklqdq %xmm14,%xmm9
  punpckhqdq %xmm14,%xmm3
  punpckhqdq %xmm5,%xmm1
  movdqa 0x1c8(%rsp),%xmm10
  movdqa %xmm2,%xmm5
  movdqa %xmm4,%xmm14
  punpckhqdq %xmm13,%xmm2
  punpcklqdq %xmm13,%xmm5
  punpckhqdq %xmm9,%xmm4
  movdqa %xmm8,%xmm13
  punpcklqdq %xmm9,%xmm14
  movdqa %xmm1,%xmm9
  punpckhqdq %xmm3,%xmm1
  movups %xmm4,-0xb0(%rax)
  punpckhqdq %xmm5,%xmm8
  punpcklqdq %xmm5,%xmm13
  movups %xmm1,-0x90(%rax)
  movdqa %xmm0,%xmm5
  punpcklqdq %xmm2,%xmm5
  punpckhqdq %xmm2,%xmm0
  movdqa 0x2d8(%rsp),%xmm1
  movdqa 0x158(%rsp),%xmm4
  movdqa 0x288(%rsp),%xmm2
  punpcklqdq %xmm3,%xmm9
  movups %xmm5,-0xe0(%rax)
  movdqa -0x8(%rsp),%xmm5
  movdqa %xmm1,%xmm3
  punpckhqdq %xmm4,%xmm1
  movups %xmm0,-0xd0(%rax)
  punpcklqdq %xmm4,%xmm3
  movdqa %xmm2,%xmm4
  punpckhqdq %xmm7,%xmm2
  movups %xmm8,-0xf0(%rax)
  punpcklqdq %xmm7,%xmm4
  movdqa %xmm2,%xmm0
  movdqa 0x228(%rsp),%xmm7
  movdqa %xmm10,%xmm8
  punpckhqdq %xmm5,%xmm8
  movups %xmm13,-0x100(%rax)
  movdqa %xmm7,%xmm2
  punpckhqdq %xmm6,%xmm7
  movups %xmm14,-0xc0(%rax)
  punpcklqdq %xmm6,%xmm2
  movdqa %xmm10,%xmm6
  movups %xmm9,-0xa0(%rax)
  punpcklqdq %xmm5,%xmm6
  movdqa %xmm3,%xmm5
  punpckhqdq %xmm2,%xmm3
  punpcklqdq %xmm2,%xmm5
  movdqa %xmm1,%xmm2
  punpckhqdq %xmm7,%xmm1
  punpcklqdq %xmm7,%xmm2
  movdqa %xmm4,%xmm7
  punpckhqdq %xmm6,%xmm4
  punpcklqdq %xmm6,%xmm7
  movdqa %xmm0,%xmm6
  punpckhqdq %xmm8,%xmm0
  punpcklqdq %xmm8,%xmm6
  movdqa %xmm5,%xmm8
  punpckhqdq %xmm7,%xmm5
  movups %xmm5,-0x70(%rax)
  movdqa %xmm3,%xmm5
  punpckhqdq %xmm4,%xmm3
  punpcklqdq %xmm7,%xmm8
  movups %xmm3,-0x50(%rax)
  movdqa %xmm2,%xmm3
  punpckhqdq %xmm6,%xmm2
  punpcklqdq %xmm4,%xmm5
  movups %xmm2,-0x30(%rax)
  movdqa %xmm1,%xmm2
  punpcklqdq %xmm6,%xmm3
  punpckhqdq %xmm0,%xmm1
  punpcklqdq %xmm0,%xmm2
  movups %xmm8,-0x80(%rax)
  movups %xmm5,-0x60(%rax)
  movups %xmm3,-0x40(%rax)
  movups %xmm2,-0x20(%rax)
  movups %xmm1,-0x10(%rax)
  cmp    %rcx,%rdx
  jne    L156
  mov    %esi,%eax
  and    $0xfffffff0,%eax
  test   $0xf,%sil
  je     L74
  mov    %eax,%r11d
  shl    $0x3,%eax
  cltq
  lea    (%r9,%rax,8),%rdx
  nopl   (%rax)
L86:
  movzbl (%r8,%r11,1),%eax
  add    $0x1,%r11
  add    $0x40,%rdx
  mov    %eax,%ecx
  mov    %eax,%ebx
  shr    $0x7,%cl
  shr    $0x6,%bl
  movzbl %cl,%ecx
  and    $0x1,%ebx
  movq   %rcx,%xmm0
  mov    %eax,%ecx
  movq   %rbx,%xmm7
  mov    %eax,%ebx
  shr    $0x5,%cl
  punpcklqdq %xmm7,%xmm0
  shr    $0x4,%bl
  and    $0x1,%ecx
  and    $0x1,%ebx
  movups %xmm0,-0x40(%rdx)
  movq   %rcx,%xmm0
  mov    %eax,%ecx
  movq   %rbx,%xmm7
  mov    %eax,%ebx
  shr    $0x3,%cl
  punpcklqdq %xmm7,%xmm0
  shr    $0x2,%bl
  and    $0x1,%ecx
  movups %xmm0,-0x30(%rdx)
  and    $0x1,%ebx
  movq   %rcx,%xmm0
  mov    %eax,%ecx
  movq   %rbx,%xmm7
  and    $0x1,%eax
  shr    %cl
  punpcklqdq %xmm7,%xmm0
  movq   %rax,%xmm7
  and    $0x1,%ecx
  movups %xmm0,-0x20(%rdx)
  movq   %rcx,%xmm0
  punpcklqdq %xmm7,%xmm0
  movups %xmm0,-0x10(%rdx)
  cmp    %r11d,%esi
  jg     L86
L74:
  shl    $0x3,%esi
  movzbl (%r8,%r10,1),%eax
  lea    0x7(%rsi),%edx
  cmp    %edx,%edi
  jle    L211
L178:
  mov    %rax,%rcx
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L211:
  mov    %eax,%ecx
  lea    0x6(%rsi),%edx
  shr    %cl
  cmp    %edx,%edi
  jle    L49
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L49:
  mov    %eax,%ecx
  lea    0x5(%rsi),%edx
  shr    $0x2,%cl
  cmp    %edx,%edi
  jle    L122
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L122:
  mov    %eax,%ecx
  lea    0x4(%rsi),%edx
  shr    $0x3,%cl
  cmp    %edx,%edi
  jle    L117
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L117:
  mov    %eax,%ecx
  lea    0x3(%rsi),%edx
  shr    $0x4,%cl
  cmp    %edx,%edi
  jle    L151
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L151:
  mov    %eax,%ecx
  lea    0x2(%rsi),%edx
  shr    $0x5,%cl
  cmp    %edx,%edi
  jle    L7
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L7:
  mov    %eax,%ecx
  lea    0x1(%rsi),%edx
  shr    $0x6,%cl
  cmp    %edx,%edi
  jle    L115
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L115:
  shr    $0x7,%al
  cmp    %edi,%esi
  jge    L184
  movslq %esi,%rsi
  movzbl %al,%eax
  mov    %rax,(%r9,%rsi,8)
L184:
  add    $0x2f0,%rsp
  pop    %rbx
  pop    %rbp
  ret
L144:
  shl    $0x6,%rcx
  mov    %r8,%r11
  mov    %r9,%rdx
  lea    0x40(%r9,%rcx,1),%rbx
  nopl   0x0(%rax)
L171:
  movzbl (%r11),%eax
  add    $0x40,%rdx
  add    $0x1,%r11
  mov    %eax,%ecx
  mov    %eax,%ebp
  shr    $0x7,%cl
  shr    $0x6,%bpl
  movzbl %cl,%ecx
  and    $0x1,%ebp
  movq   %rcx,%xmm0
  mov    %eax,%ecx
  movq   %rbp,%xmm7
  mov    %eax,%ebp
  shr    $0x5,%cl
  punpcklqdq %xmm7,%xmm0
  shr    $0x4,%bpl
  and    $0x1,%ecx
  and    $0x1,%ebp
  movups %xmm0,-0x40(%rdx)
  movq   %rcx,%xmm0
  mov    %eax,%ecx
  movq   %rbp,%xmm7
  mov    %eax,%ebp
  shr    $0x3,%cl
  punpcklqdq %xmm7,%xmm0
  shr    $0x2,%bpl
  and    $0x1,%ecx
  movups %xmm0,-0x30(%rdx)
  and    $0x1,%ebp
  movq   %rcx,%xmm0
  mov    %eax,%ecx
  movq   %rbp,%xmm7
  and    $0x1,%eax
  shr    %cl
  punpcklqdq %xmm7,%xmm0
  movq   %rax,%xmm7
  and    $0x1,%ecx
  movups %xmm0,-0x20(%rdx)
  movq   %rcx,%xmm0
  punpcklqdq %xmm7,%xmm0
  movups %xmm0,-0x10(%rdx)
  cmp    %rbx,%rdx
  jne    L171
  shl    $0x3,%esi
  movzbl (%r8,%r10,1),%eax
  lea    0x7(%rsi),%edx
  cmp    %edx,%edi
  jle    L211
  jmp    L178
L181:
  movslq %esi,%r10
  shl    $0x3,%esi
  movzbl (%rdx,%r10,1),%eax
  lea    0x7(%rsi),%edx
  cmp    %edx,%edi
  jle    L71
  mov    %rax,%rcx
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L71:
  mov    %eax,%ecx
  lea    0x6(%rsi),%edx
  shr    %cl
  cmp    %edx,%edi
  jle    L27
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L27:
  mov    %eax,%ecx
  lea    0x5(%rsi),%edx
  shr    $0x2,%cl
  cmp    %edx,%edi
  jle    L48
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L48:
  mov    %eax,%ecx
  lea    0x4(%rsi),%edx
  shr    $0x3,%cl
  cmp    %edx,%edi
  jle    L147
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L147:
  mov    %eax,%ecx
  lea    0x3(%rsi),%edx
  shr    $0x4,%cl
  cmp    %edx,%edi
  jle    L217
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L217:
  mov    %eax,%ecx
  lea    0x2(%rsi),%edx
  shr    $0x5,%cl
  cmp    %edx,%edi
  jle    L12
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L12:
  mov    %eax,%ecx
  lea    0x1(%rsi),%edx
  shr    $0x6,%cl
  cmp    %edx,%edi
  jle    L85
  movslq %edx,%rdx
  and    $0x1,%ecx
  mov    %rcx,(%r9,%rdx,8)
L85:
  shr    $0x7,%al
  cmp    %edi,%esi
  jge    L175
  movslq %esi,%rsi
  movzbl %al,%eax
  mov    %rax,(%r9,%rsi,8)
  ret
L175:
  ret
```

tool_calls: name: read_data
arguments: data_label: D80
datatype: byte[16]
name: read_data
arguments: data_label: D36
datatype: byte[16]
name: read_data
arguments: data_label: D13
datatype: byte[16]
name: read_data
arguments: data_label: D54
datatype: byte[16]
name: read_data
arguments: data_label: D130
datatype: byte[16]
name: read_data
arguments: data_label: D29
datatype: byte[16]
name: read_data
arguments: data_label: D91
datatype: byte[16]

tool: {"D80": [0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01]}

tool: {"D36": [0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f]}

tool: {"D13": [0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f]}

tool: {"D54": [0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f]}

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

tool: {"D29": [0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07]}

tool: {"D91": [0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03]}

assistant: ```c
void string_to_binary(const uint16_t in_len, int64_t *poly, const unsigned char *str) {
  unsigned char tmp;
  int Nover8, i, j;
  Nover8 = in_len / 8;
  if (in_len % 8 == 0)
    Nover8--;
  for (i = 0; i < Nover8; i++) {
    tmp = str[i];
    for (j = 7; j >= 0; j--) {
      poly[i * 8 + j] = (int64_t)(tmp & 1);
      tmp >>= 1;
    }
  }
  tmp = str[Nover8];
  for (i = 7; i >= 0; i--) {
    if (i + Nover8 * 8 < in_len)
      poly[Nover8 * 8 + i] = (int64_t)(tmp & 1);
    tmp >>= 1;
  }
}
```