user: Translate the below assembly code into C programming language:

```asm
<byte_to_bit>:
  endbr64
  mov    %rsi,%r10
  mov    %edx,%esi
  test   %edx,%edx
  jle    L73
  movslq %edx,%rax
  lea    -0x1(%rdx),%r9d
  lea    (%rcx,%rax,8),%rdx
  cmp    %rdx,%r10
  setae  %dl
  add    %r10,%rax
  cmp    %rax,%rcx
  setae  %al
  or     %al,%dl
  je     L86
  cmp    $0xf,%r9d
  jbe    L86
  movd   %edi,%xmm4
  pxor   %xmm1,%xmm1
  push   %rbx
  mov    %r9d,%r11d
  pshufd $0x0,%xmm4,%xmm0
  shr    $0x4,%r11d
  mov    %r10,%rdx
  mov    %rcx,%rax
  pcmpeqd %xmm1,%xmm0
  sub    $0x1,%r11d
  sub    $0x698,%rsp
  shl    $0x4,%r11
  movdqa D9(%rip),%xmm14
  movdqa D5(%rip),%xmm15
  lea    0x10(%r10,%r11,1),%rbx
  pcmpeqd %xmm1,%xmm0
  movdqa %xmm0,%xmm4
  movaps %xmm0,-0x18(%rsp)
  punpckhwd %xmm0,%xmm4
  movaps %xmm4,-0x8(%rsp)
  nopl   0x0(%rax,%rax,1)
L80:
  movdqu (%rax),%xmm3
  movdqu 0x10(%rax),%xmm0
  movdqa %xmm14,%xmm9
  movdqa %xmm14,%xmm12
  movdqu 0x10(%rax),%xmm1
  movdqu 0x20(%rax),%xmm6
  movdqa %xmm14,%xmm11
  add    $0x10,%rdx
  pand   %xmm14,%xmm0
  pand   %xmm14,%xmm3
  movdqu 0x20(%rax),%xmm13
  movdqu 0x40(%rax),%xmm2
  packuswb %xmm0,%xmm3
  movdqu (%rax),%xmm0
  psrlw  $0x8,%xmm1
  pand   %xmm14,%xmm6
  psrlw  $0x8,%xmm13
  pand   %xmm14,%xmm2
  movdqu 0x50(%rax),%xmm5
  movdqu 0x70(%rax),%xmm7
  psrlw  $0x8,%xmm0
  movdqu 0x60(%rax),%xmm8
  movdqu -0x10(%rdx),%xmm4
  sub    $0xffffffffffffff80,%rax
  packuswb %xmm1,%xmm0
  movdqu -0x50(%rax),%xmm1
  psrlw  $0x8,%xmm5
  pand   %xmm14,%xmm7
  psrlw  $0x8,%xmm8
  pand   %xmm14,%xmm1
  packuswb %xmm1,%xmm6
  movdqu -0x50(%rax),%xmm1
  pand   %xmm6,%xmm9
  psrlw  $0x8,%xmm6
  psrlw  $0x8,%xmm1
  packuswb %xmm1,%xmm13
  movdqu -0x30(%rax),%xmm1
  pand   %xmm14,%xmm1
  packuswb %xmm1,%xmm2
  movdqu -0x40(%rax),%xmm1
  pand   %xmm2,%xmm12
  psrlw  $0x8,%xmm2
  psrlw  $0x8,%xmm1
  packuswb %xmm5,%xmm1
  movdqu -0x20(%rax),%xmm5
  pand   %xmm14,%xmm5
  packuswb %xmm7,%xmm5
  movdqu -0x10(%rax),%xmm7
  psrlw  $0x8,%xmm7
  packuswb %xmm7,%xmm8
  movdqa %xmm14,%xmm7
  pand   %xmm3,%xmm7
  psrlw  $0x8,%xmm3
  packuswb %xmm6,%xmm3
  movdqa %xmm14,%xmm6
  packuswb %xmm9,%xmm7
  pand   %xmm5,%xmm6
  psrlw  $0x8,%xmm5
  movdqa %xmm14,%xmm9
  packuswb %xmm6,%xmm12
  packuswb %xmm5,%xmm2
  movdqa %xmm14,%xmm6
  movdqa %xmm14,%xmm5
  pand   %xmm0,%xmm6
  pand   %xmm8,%xmm9
  pand   %xmm13,%xmm5
  psrlw  $0x8,%xmm0
  movdqa %xmm12,%xmm10
  packuswb %xmm5,%xmm6
  movdqa %xmm14,%xmm5
  pand   %xmm14,%xmm12
  pand   %xmm1,%xmm5
  psrlw  $0x8,%xmm10
  pand   %xmm6,%xmm11
  psrlw  $0x8,%xmm6
  psrlw  $0x8,%xmm1
  packuswb %xmm9,%xmm5
  movdqa %xmm7,%xmm9
  psrlw  $0x8,%xmm13
  psrlw  $0x8,%xmm9
  packuswb %xmm13,%xmm0
  packuswb %xmm10,%xmm9
  movdqa %xmm14,%xmm10
  pand   %xmm14,%xmm0
  pand   %xmm5,%xmm10
  psrlw  $0x8,%xmm5
  packuswb %xmm10,%xmm11
  packuswb %xmm5,%xmm6
  movdqa %xmm14,%xmm10
  movdqa %xmm14,%xmm5
  psrlw  $0x8,%xmm8
  pand   %xmm3,%xmm10
  pand   %xmm2,%xmm5
  psrlw  $0x8,%xmm3
  packuswb %xmm8,%xmm1
  packuswb %xmm5,%xmm10
  movdqa %xmm3,%xmm5
  movdqa -0x18(%rsp),%xmm3
  pand   %xmm14,%xmm1
  psrlw  $0x8,%xmm2
  packuswb %xmm2,%xmm5
  movdqa %xmm0,%xmm2
  movdqa %xmm3,%xmm0
  punpcklwd %xmm3,%xmm0
  movdqa -0x8(%rsp),%xmm3
  packuswb %xmm1,%xmm2
  movdqa %xmm0,%xmm1
  punpckhwd %xmm3,%xmm1
  punpcklwd %xmm3,%xmm0
  movdqa %xmm4,%xmm3
  punpcklwd %xmm1,%xmm0
  movdqa %xmm7,%xmm1
  pand   %xmm15,%xmm3
  pand   %xmm14,%xmm0
  pand   %xmm14,%xmm1
  packuswb %xmm0,%xmm0
  packuswb %xmm12,%xmm1
  pxor   %xmm12,%xmm12
  movdqa %xmm0,%xmm7
  pand   %xmm0,%xmm1
  pand   %xmm0,%xmm11
  pandn  %xmm3,%xmm7
  movdqa %xmm4,%xmm3
  punpckhbw %xmm12,%xmm4
  por    %xmm1,%xmm7
  punpcklbw %xmm12,%xmm3
  movdqa %xmm4,%xmm8
  movd   %xmm7,%r11d
  movdqa %xmm3,%xmm1
  pand   %xmm0,%xmm10
  mov    %r11b,-0x80(%rax)
  pand   %xmm0,%xmm2
  pand   %xmm0,%xmm6
  pand   %xmm0,%xmm5
  psraw  $0x1,%xmm1
  psraw  $0x1,%xmm8
  pand   %xmm0,%xmm9
  movaps %xmm7,0x688(%rsp)
  movzbl 0x689(%rsp),%r11d
  pand   %xmm14,%xmm8
  pand   %xmm14,%xmm1
  packuswb %xmm8,%xmm1
  movdqa %xmm11,%xmm8
  movdqa %xmm0,%xmm11
  mov    %r11b,-0x78(%rax)
  pand   %xmm15,%xmm1
  movaps %xmm7,0x678(%rsp)
  pandn  %xmm1,%xmm11
  movzbl 0x67a(%rsp),%r11d
  movdqa %xmm3,%xmm1
  por    %xmm8,%xmm11
  psraw  $0x2,%xmm1
  movdqa %xmm4,%xmm8
  mov    %r11b,-0x70(%rax)
  psraw  $0x2,%xmm8
  pand   %xmm14,%xmm1
  movaps %xmm7,0x668(%rsp)
  pand   %xmm14,%xmm8
  movzbl 0x66b(%rsp),%r11d
  packuswb %xmm8,%xmm1
  movdqa %xmm10,%xmm8
  movdqa %xmm0,%xmm10
  mov    %r11b,-0x68(%rax)
  pand   %xmm15,%xmm1
  movaps %xmm7,0x658(%rsp)
  pandn  %xmm1,%xmm10
  movzbl 0x65c(%rsp),%r11d
  movdqa %xmm3,%xmm1
  por    %xmm8,%xmm10
  psraw  $0x3,%xmm1
  movdqa %xmm4,%xmm8
  mov    %r11b,-0x60(%rax)
  psraw  $0x3,%xmm8
  pand   %xmm14,%xmm1
  movaps %xmm7,0x648(%rsp)
  pand   %xmm14,%xmm8
  movzbl 0x64d(%rsp),%r11d
  packuswb %xmm8,%xmm1
  movdqa %xmm0,%xmm8
  mov    %r11b,-0x58(%rax)
  pand   %xmm15,%xmm1
  movaps %xmm7,0x638(%rsp)
  pandn  %xmm1,%xmm8
  movzbl 0x63e(%rsp),%r11d
  movdqa %xmm3,%xmm1
  por    %xmm8,%xmm2
  psraw  $0x4,%xmm1
  movdqa %xmm4,%xmm8
  mov    %r11b,-0x50(%rax)
  psraw  $0x4,%xmm8
  pand   %xmm14,%xmm1
  movaps %xmm7,0x628(%rsp)
  pand   %xmm14,%xmm8
  movzbl 0x62f(%rsp),%r11d
  packuswb %xmm8,%xmm1
  movdqa %xmm9,%xmm8
  movdqa %xmm0,%xmm9
  mov    %r11b,-0x48(%rax)
  pand   %xmm15,%xmm1
  movaps %xmm7,0x618(%rsp)
  pandn  %xmm1,%xmm9
  movzbl 0x620(%rsp),%r11d
  movdqa %xmm3,%xmm1
  por    %xmm8,%xmm9
  psraw  $0x5,%xmm1
  movdqa %xmm4,%xmm8
  mov    %r11b,-0x40(%rax)
  psraw  $0x5,%xmm8
  pand   %xmm14,%xmm1
  movaps %xmm7,0x608(%rsp)
  pand   %xmm14,%xmm8
  movzbl 0x611(%rsp),%r11d
  packuswb %xmm8,%xmm1
  movdqa %xmm0,%xmm8
  mov    %r11b,-0x38(%rax)
  pand   %xmm15,%xmm1
  movaps %xmm7,0x5f8(%rsp)
  pandn  %xmm1,%xmm8
  movzbl 0x602(%rsp),%r11d
  movdqa %xmm4,%xmm1
  psraw  $0x6,%xmm1
  psraw  $0x7,%xmm4
  por    %xmm8,%xmm6
  mov    %r11b,-0x30(%rax)
  movdqa %xmm3,%xmm8
  pand   %xmm14,%xmm1
  pand   %xmm14,%xmm4
  movaps %xmm7,0x5e8(%rsp)
  psraw  $0x6,%xmm8
  psraw  $0x7,%xmm3
  movzbl 0x5f3(%rsp),%r11d
  pand   %xmm14,%xmm8
  pand   %xmm14,%xmm3
  mov    %r11b,-0x28(%rax)
  packuswb %xmm1,%xmm8
  movdqa %xmm0,%xmm1
  packuswb %xmm4,%xmm3
  movaps %xmm7,0x5d8(%rsp)
  pand   %xmm15,%xmm8
  pand   %xmm0,%xmm3
  movzbl 0x5e4(%rsp),%r11d
  pandn  %xmm8,%xmm1
  mov    %r11b,-0x20(%rax)
  por    %xmm1,%xmm5
  movaps %xmm7,0x5c8(%rsp)
  movzbl 0x5d5(%rsp),%r11d
  mov    %r11b,-0x18(%rax)
  movaps %xmm7,0x5b8(%rsp)
  movzbl 0x5c6(%rsp),%r11d
  mov    %r11b,-0x10(%rax)
  movaps %xmm7,0x5a8(%rsp)
  movzbl 0x5b7(%rsp),%r11d
  mov    %r11b,-0x8(%rax)
  movd   %xmm11,%r11d
  mov    %r11b,-0x7f(%rax)
  movaps %xmm11,0x598(%rsp)
  movzbl 0x599(%rsp),%r11d
  mov    %r11b,-0x77(%rax)
  movaps %xmm11,0x588(%rsp)
  movzbl 0x58a(%rsp),%r11d
  mov    %r11b,-0x6f(%rax)
  movaps %xmm11,0x578(%rsp)
  movzbl 0x57b(%rsp),%r11d
  mov    %r11b,-0x67(%rax)
  movaps %xmm11,0x568(%rsp)
  movzbl 0x56c(%rsp),%r11d
  mov    %r11b,-0x5f(%rax)
  movaps %xmm11,0x558(%rsp)
  movzbl 0x55d(%rsp),%r11d
  mov    %r11b,-0x57(%rax)
  movaps %xmm11,0x548(%rsp)
  movzbl 0x54e(%rsp),%r11d
  mov    %r11b,-0x4f(%rax)
  movaps %xmm11,0x538(%rsp)
  movzbl 0x53f(%rsp),%r11d
  mov    %r11b,-0x47(%rax)
  movaps %xmm11,0x528(%rsp)
  movzbl 0x530(%rsp),%r11d
  mov    %r11b,-0x3f(%rax)
  movaps %xmm11,0x518(%rsp)
  movzbl 0x521(%rsp),%r11d
  mov    %r11b,-0x37(%rax)
  movaps %xmm11,0x508(%rsp)
  movzbl 0x512(%rsp),%r11d
  mov    %r11b,-0x2f(%rax)
  movaps %xmm11,0x4f8(%rsp)
  movzbl 0x503(%rsp),%r11d
  mov    %r11b,-0x27(%rax)
  movaps %xmm11,0x4e8(%rsp)
  movzbl 0x4f4(%rsp),%r11d
  mov    %r11b,-0x1f(%rax)
  movaps %xmm11,0x4d8(%rsp)
  movzbl 0x4e5(%rsp),%r11d
  mov    %r11b,-0x17(%rax)
  movaps %xmm11,0x4c8(%rsp)
  movzbl 0x4d6(%rsp),%r11d
  mov    %r11b,-0xf(%rax)
  movaps %xmm11,0x4b8(%rsp)
  movzbl 0x4c7(%rsp),%r11d
  mov    %r11b,-0x7(%rax)
  movd   %xmm10,%r11d
  mov    %r11b,-0x7e(%rax)
  movaps %xmm10,0x4a8(%rsp)
  movzbl 0x4a9(%rsp),%r11d
  mov    %r11b,-0x76(%rax)
  movaps %xmm10,0x498(%rsp)
  movzbl 0x49a(%rsp),%r11d
  mov    %r11b,-0x6e(%rax)
  movaps %xmm10,0x488(%rsp)
  movzbl 0x48b(%rsp),%r11d
  mov    %r11b,-0x66(%rax)
  movaps %xmm10,0x478(%rsp)
  movzbl 0x47c(%rsp),%r11d
  mov    %r11b,-0x5e(%rax)
  movaps %xmm10,0x468(%rsp)
  movzbl 0x46d(%rsp),%r11d
  mov    %r11b,-0x56(%rax)
  movaps %xmm10,0x458(%rsp)
  movzbl 0x45e(%rsp),%r11d
  mov    %r11b,-0x4e(%rax)
  movaps %xmm10,0x448(%rsp)
  movzbl 0x44f(%rsp),%r11d
  mov    %r11b,-0x46(%rax)
  movaps %xmm10,0x438(%rsp)
  movzbl 0x440(%rsp),%r11d
  mov    %r11b,-0x3e(%rax)
  movaps %xmm10,0x428(%rsp)
  movzbl 0x431(%rsp),%r11d
  mov    %r11b,-0x36(%rax)
  movaps %xmm10,0x418(%rsp)
  movzbl 0x422(%rsp),%r11d
  mov    %r11b,-0x2e(%rax)
  movaps %xmm10,0x408(%rsp)
  movzbl 0x413(%rsp),%r11d
  mov    %r11b,-0x26(%rax)
  movaps %xmm10,0x3f8(%rsp)
  movzbl 0x404(%rsp),%r11d
  mov    %r11b,-0x1e(%rax)
  movaps %xmm10,0x3e8(%rsp)
  movzbl 0x3f5(%rsp),%r11d
  mov    %r11b,-0x16(%rax)
  movaps %xmm10,0x3d8(%rsp)
  movzbl 0x3e6(%rsp),%r11d
  mov    %r11b,-0xe(%rax)
  movaps %xmm10,0x3c8(%rsp)
  movzbl 0x3d7(%rsp),%r11d
  mov    %r11b,-0x6(%rax)
  movd   %xmm2,%r11d
  mov    %r11b,-0x7d(%rax)
  movaps %xmm2,0x3b8(%rsp)
  movzbl 0x3b9(%rsp),%r11d
  mov    %r11b,-0x75(%rax)
  movaps %xmm2,0x3a8(%rsp)
  movzbl 0x3aa(%rsp),%r11d
  mov    %r11b,-0x6d(%rax)
  movaps %xmm2,0x398(%rsp)
  movzbl 0x39b(%rsp),%r11d
  mov    %r11b,-0x65(%rax)
  movaps %xmm2,0x388(%rsp)
  movzbl 0x38c(%rsp),%r11d
  mov    %r11b,-0x5d(%rax)
  movaps %xmm2,0x378(%rsp)
  movzbl 0x37d(%rsp),%r11d
  mov    %r11b,-0x55(%rax)
  movaps %xmm2,0x368(%rsp)
  movzbl 0x36e(%rsp),%r11d
  mov    %r11b,-0x4d(%rax)
  movaps %xmm2,0x358(%rsp)
  movzbl 0x35f(%rsp),%r11d
  mov    %r11b,-0x45(%rax)
  movaps %xmm2,0x348(%rsp)
  movzbl 0x350(%rsp),%r11d
  mov    %r11b,-0x3d(%rax)
  movaps %xmm2,0x338(%rsp)
  movzbl 0x341(%rsp),%r11d
  mov    %r11b,-0x35(%rax)
  movaps %xmm2,0x328(%rsp)
  movzbl 0x332(%rsp),%r11d
  mov    %r11b,-0x2d(%rax)
  movaps %xmm2,0x318(%rsp)
  movzbl 0x323(%rsp),%r11d
  mov    %r11b,-0x25(%rax)
  movaps %xmm2,0x308(%rsp)
  movzbl 0x314(%rsp),%r11d
  mov    %r11b,-0x1d(%rax)
  movaps %xmm2,0x2f8(%rsp)
  movzbl 0x305(%rsp),%r11d
  mov    %r11b,-0x15(%rax)
  movaps %xmm2,0x2e8(%rsp)
  movzbl 0x2f6(%rsp),%r11d
  mov    %r11b,-0xd(%rax)
  movaps %xmm2,0x2d8(%rsp)
  movzbl 0x2e7(%rsp),%r11d
  mov    %r11b,-0x5(%rax)
  movd   %xmm9,%r11d
  mov    %r11b,-0x7c(%rax)
  movaps %xmm9,0x2c8(%rsp)
  movzbl 0x2c9(%rsp),%r11d
  mov    %r11b,-0x74(%rax)
  movaps %xmm9,0x2b8(%rsp)
  movzbl 0x2ba(%rsp),%r11d
  mov    %r11b,-0x6c(%rax)
  movaps %xmm9,0x2a8(%rsp)
  movzbl 0x2ab(%rsp),%r11d
  mov    %r11b,-0x64(%rax)
  movaps %xmm9,0x298(%rsp)
  movzbl 0x29c(%rsp),%r11d
  mov    %r11b,-0x5c(%rax)
  movaps %xmm9,0x288(%rsp)
  movzbl 0x28d(%rsp),%r11d
  mov    %r11b,-0x54(%rax)
  movaps %xmm9,0x278(%rsp)
  movzbl 0x27e(%rsp),%r11d
  mov    %r11b,-0x4c(%rax)
  movaps %xmm9,0x268(%rsp)
  movzbl 0x26f(%rsp),%r11d
  mov    %r11b,-0x44(%rax)
  movaps %xmm9,0x258(%rsp)
  movzbl 0x260(%rsp),%r11d
  mov    %r11b,-0x3c(%rax)
  movaps %xmm9,0x248(%rsp)
  movzbl 0x251(%rsp),%r11d
  mov    %r11b,-0x34(%rax)
  movaps %xmm9,0x238(%rsp)
  movzbl 0x242(%rsp),%r11d
  mov    %r11b,-0x2c(%rax)
  movaps %xmm9,0x228(%rsp)
  movzbl 0x233(%rsp),%r11d
  mov    %r11b,-0x24(%rax)
  movaps %xmm9,0x218(%rsp)
  movzbl 0x224(%rsp),%r11d
  mov    %r11b,-0x1c(%rax)
  movaps %xmm9,0x208(%rsp)
  movzbl 0x215(%rsp),%r11d
  mov    %r11b,-0x14(%rax)
  movaps %xmm9,0x1f8(%rsp)
  movzbl 0x206(%rsp),%r11d
  mov    %r11b,-0xc(%rax)
  movaps %xmm9,0x1e8(%rsp)
  movzbl 0x1f7(%rsp),%r11d
  mov    %r11b,-0x4(%rax)
  movd   %xmm6,%r11d
  mov    %r11b,-0x7b(%rax)
  movaps %xmm6,0x1d8(%rsp)
  movzbl 0x1d9(%rsp),%r11d
  mov    %r11b,-0x73(%rax)
  movaps %xmm6,0x1c8(%rsp)
  movzbl 0x1ca(%rsp),%r11d
  mov    %r11b,-0x6b(%rax)
  movaps %xmm6,0x1b8(%rsp)
  movzbl 0x1bb(%rsp),%r11d
  mov    %r11b,-0x63(%rax)
  movaps %xmm6,0x1a8(%rsp)
  movzbl 0x1ac(%rsp),%r11d
  mov    %r11b,-0x5b(%rax)
  movaps %xmm6,0x198(%rsp)
  movzbl 0x19d(%rsp),%r11d
  mov    %r11b,-0x53(%rax)
  movaps %xmm6,0x188(%rsp)
  movzbl 0x18e(%rsp),%r11d
  mov    %r11b,-0x4b(%rax)
  movaps %xmm6,0x178(%rsp)
  movzbl 0x17f(%rsp),%r11d
  mov    %r11b,-0x43(%rax)
  movaps %xmm6,0x168(%rsp)
  movzbl 0x170(%rsp),%r11d
  mov    %r11b,-0x3b(%rax)
  movaps %xmm6,0x158(%rsp)
  movzbl 0x161(%rsp),%r11d
  mov    %r11b,-0x33(%rax)
  movaps %xmm6,0x148(%rsp)
  movzbl 0x152(%rsp),%r11d
  mov    %r11b,-0x2b(%rax)
  movaps %xmm6,0x138(%rsp)
  movzbl 0x143(%rsp),%r11d
  mov    %r11b,-0x23(%rax)
  movaps %xmm6,0x128(%rsp)
  movzbl 0x134(%rsp),%r11d
  mov    %r11b,-0x1b(%rax)
  movaps %xmm6,0x118(%rsp)
  movzbl 0x125(%rsp),%r11d
  mov    %r11b,-0x13(%rax)
  movaps %xmm6,0x108(%rsp)
  movzbl 0x116(%rsp),%r11d
  mov    %r11b,-0xb(%rax)
  movaps %xmm6,0xf8(%rsp)
  movzbl 0x107(%rsp),%r11d
  mov    %r11b,-0x3(%rax)
  movd   %xmm5,%r11d
  mov    %r11b,-0x7a(%rax)
  movaps %xmm5,0xe8(%rsp)
  movzbl 0xe9(%rsp),%r11d
  mov    %r11b,-0x72(%rax)
  movaps %xmm5,0xd8(%rsp)
  movzbl 0xda(%rsp),%r11d
  mov    %r11b,-0x6a(%rax)
  movaps %xmm5,0xc8(%rsp)
  movzbl 0xcb(%rsp),%r11d
  mov    %r11b,-0x62(%rax)
  movaps %xmm5,0xb8(%rsp)
  movzbl 0xbc(%rsp),%r11d
  mov    %r11b,-0x5a(%rax)
  movaps %xmm5,0xa8(%rsp)
  movzbl 0xad(%rsp),%r11d
  mov    %r11b,-0x52(%rax)
  movaps %xmm5,0x98(%rsp)
  movzbl 0x9e(%rsp),%r11d
  mov    %r11b,-0x4a(%rax)
  movaps %xmm5,0x88(%rsp)
  movzbl 0x8f(%rsp),%r11d
  mov    %r11b,-0x42(%rax)
  movaps %xmm5,0x78(%rsp)
  movzbl 0x80(%rsp),%r11d
  mov    %r11b,-0x3a(%rax)
  movaps %xmm5,0x68(%rsp)
  movzbl 0x71(%rsp),%r11d
  mov    %r11b,-0x32(%rax)
  movaps %xmm5,0x58(%rsp)
  movzbl 0x62(%rsp),%r11d
  mov    %r11b,-0x2a(%rax)
  movaps %xmm5,0x48(%rsp)
  movzbl 0x53(%rsp),%r11d
  mov    %r11b,-0x22(%rax)
  movaps %xmm5,0x38(%rsp)
  movzbl 0x44(%rsp),%r11d
  mov    %r11b,-0x1a(%rax)
  movaps %xmm5,0x28(%rsp)
  movzbl 0x35(%rsp),%r11d
  mov    %r11b,-0x12(%rax)
  movaps %xmm5,0x18(%rsp)
  movzbl 0x26(%rsp),%r11d
  mov    %r11b,-0xa(%rax)
  movaps %xmm5,0x8(%rsp)
  movzbl 0x17(%rsp),%r11d
  movdqu -0x60(%rax),%xmm9
  movdqu -0x60(%rax),%xmm8
  movdqu -0x30(%rax),%xmm10
  mov    %r11b,-0x2(%rax)
  movdqu -0x10(%rdx),%xmm1
  pand   %xmm14,%xmm9
  movdqu -0x10(%rdx),%xmm5
  psrlw  $0x8,%xmm8
  movdqu -0x40(%rax),%xmm11
  pand   %xmm14,%xmm10
  punpcklbw %xmm12,%xmm1
  punpckhbw %xmm12,%xmm5
  psrlw  $0x8,%xmm11
  movdqa %xmm1,%xmm6
  movdqa %xmm5,%xmm2
  psraw  $0x7,%xmm6
  pand   %xmm14,%xmm6
  psraw  $0x7,%xmm2
  pand   %xmm14,%xmm2
  movdqa %xmm6,%xmm7
  movdqu -0x70(%rax),%xmm6
  packuswb %xmm2,%xmm7
  movdqu -0x70(%rax),%xmm2
  movaps %xmm7,-0x58(%rsp)
  movdqu -0x80(%rax),%xmm7
  psrlw  $0x8,%xmm6
  pand   %xmm14,%xmm2
  pand   %xmm14,%xmm7
  packuswb %xmm2,%xmm7
  movdqu -0x80(%rax),%xmm2
  psrlw  $0x8,%xmm2
  movdqa %xmm2,%xmm13
  packuswb %xmm6,%xmm13
  movdqu -0x50(%rax),%xmm6
  movaps %xmm13,-0x78(%rsp)
  movdqa %xmm11,%xmm13
  movdqu -0x10(%rax),%xmm11
  pand   %xmm14,%xmm6
  packuswb %xmm6,%xmm9
  movdqu -0x50(%rax),%xmm6
  pand   %xmm14,%xmm11
  psrlw  $0x8,%xmm6
  packuswb %xmm6,%xmm8
  movdqu -0x40(%rax),%xmm6
  pand   %xmm14,%xmm6
  packuswb %xmm10,%xmm6
  movdqu -0x30(%rax),%xmm10
  psrlw  $0x8,%xmm10
  packuswb %xmm10,%xmm13
  movdqu -0x20(%rax),%xmm10
  movdqu -0x20(%rax),%xmm12
  movaps %xmm13,-0x48(%rsp)
  pand   %xmm14,%xmm10
  psrlw  $0x8,%xmm12
  packuswb %xmm11,%xmm10
  movdqu -0x10(%rax),%xmm11
  movdqa %xmm12,%xmm2
  movdqa %xmm14,%xmm12
  pand   %xmm7,%xmm12
  psrlw  $0x8,%xmm7
  psrlw  $0x8,%xmm11
  packuswb %xmm11,%xmm2
  movdqa %xmm14,%xmm11
  movaps %xmm2,-0x68(%rsp)
  pand   %xmm9,%xmm11
  movdqa %xmm12,%xmm2
  movdqa -0x68(%rsp),%xmm12
  psrlw  $0x8,%xmm9
  packuswb %xmm11,%xmm2
  movdqa %xmm14,%xmm11
  packuswb %xmm9,%xmm7
  movdqa %xmm14,%xmm9
  pand   %xmm10,%xmm11
  movaps %xmm2,-0x38(%rsp)
  pand   %xmm6,%xmm9
  psrlw  $0x8,%xmm6
  pand   %xmm14,%xmm12
  movdqa -0x38(%rsp),%xmm4
  packuswb %xmm11,%xmm9
  psrlw  $0x8,%xmm10
  movdqa -0x78(%rsp),%xmm11
  packuswb %xmm10,%xmm6
  movdqa %xmm14,%xmm10
  pand   %xmm14,%xmm4
  pand   %xmm8,%xmm10
  psrlw  $0x8,%xmm8
  pand   %xmm14,%xmm11
  packuswb %xmm10,%xmm11
  movdqa %xmm13,%xmm10
  movdqa %xmm2,%xmm13
  pand   %xmm14,%xmm10
  psrlw  $0x8,%xmm13
  packuswb %xmm12,%xmm10
  movdqa %xmm9,%xmm12
  movdqa %xmm13,%xmm2
  psrlw  $0x8,%xmm12
  pand   %xmm14,%xmm9
  packuswb %xmm12,%xmm2
  movdqa %xmm14,%xmm12
  packuswb %xmm9,%xmm4
  pand   %xmm11,%xmm12
  psrlw  $0x8,%xmm11
  movaps %xmm2,-0x28(%rsp)
  movdqa -0x78(%rsp),%xmm2
  movdqa %xmm12,%xmm13
  movdqa %xmm14,%xmm12
  movdqa %xmm5,%xmm9
  psrlw  $0x8,%xmm2
  psraw  $0x2,%xmm9
  pand   %xmm10,%xmm12
  packuswb %xmm12,%xmm13
  psrlw  $0x8,%xmm10
  movdqa %xmm11,%xmm12
  packuswb %xmm10,%xmm12
  movdqa %xmm14,%xmm11
  movdqa %xmm14,%xmm10
  pand   %xmm6,%xmm10
  pand   %xmm7,%xmm11
  packuswb %xmm8,%xmm2
  psrlw  $0x8,%xmm7
  packuswb %xmm10,%xmm11
  pand   %xmm14,%xmm2
  psrlw  $0x8,%xmm6
  movdqa %xmm7,%xmm10
  movdqa -0x68(%rsp),%xmm7
  movdqa %xmm1,%xmm8
  packuswb %xmm6,%xmm10
  movdqa -0x48(%rsp),%xmm6
  psraw  $0x4,%xmm8
  pand   %xmm14,%xmm9
  psrlw  $0x8,%xmm7
  pand   %xmm14,%xmm8
  psrlw  $0x8,%xmm6
  packuswb %xmm7,%xmm6
  movdqa %xmm1,%xmm7
  pand   %xmm14,%xmm6
  psraw  $0x5,%xmm7
  packuswb %xmm6,%xmm2
  movdqa %xmm0,%xmm6
  pand   %xmm14,%xmm7
  pandn  %xmm4,%xmm6
  movdqa %xmm5,%xmm4
  por    %xmm6,%xmm3
  psraw  $0x6,%xmm4
  movdqa %xmm1,%xmm6
  psraw  $0x6,%xmm6
  pand   %xmm14,%xmm4
  pand   %xmm14,%xmm6
  packuswb %xmm4,%xmm6
  movdqa %xmm0,%xmm4
  pand   %xmm15,%xmm6
  pandn  %xmm13,%xmm4
  pand   %xmm0,%xmm6
  por    %xmm6,%xmm4
  movdqa %xmm5,%xmm6
  psraw  $0x5,%xmm6
  pand   %xmm14,%xmm6
  packuswb %xmm6,%xmm7
  movdqa %xmm0,%xmm6
  pand   %xmm15,%xmm7
  pandn  %xmm11,%xmm6
  pand   %xmm0,%xmm7
  por    %xmm7,%xmm6
  movdqa %xmm5,%xmm7
  psraw  $0x4,%xmm7
  pand   %xmm14,%xmm7
  packuswb %xmm7,%xmm8
  movdqa %xmm0,%xmm7
  pand   %xmm15,%xmm8
  pandn  %xmm2,%xmm7
  movdqa %xmm1,%xmm2
  pand   %xmm0,%xmm8
  psraw  $0x3,%xmm2
  por    %xmm8,%xmm7
  movdqa %xmm5,%xmm8
  pand   %xmm14,%xmm2
  psraw  $0x3,%xmm8
  psraw  $0x1,%xmm5
  pand   %xmm14,%xmm8
  pand   %xmm14,%xmm5
  packuswb %xmm8,%xmm2
  movdqa %xmm0,%xmm8
  pandn  -0x28(%rsp),%xmm8
  pand   %xmm15,%xmm2
  pand   %xmm0,%xmm2
  por    %xmm2,%xmm8
  movdqa %xmm1,%xmm2
  psraw  $0x2,%xmm2
  psraw  $0x1,%xmm1
  pand   %xmm14,%xmm2
  pand   %xmm14,%xmm1
  packuswb %xmm9,%xmm2
  movdqa %xmm0,%xmm9
  packuswb %xmm5,%xmm1
  pand   %xmm15,%xmm2
  pandn  %xmm12,%xmm9
  movdqa %xmm3,%xmm5
  pand   %xmm0,%xmm2
  punpcklbw %xmm8,%xmm5
  punpckhbw %xmm8,%xmm3
  por    %xmm2,%xmm9
  movdqa %xmm1,%xmm2
  movdqa %xmm0,%xmm1
  pand   %xmm15,%xmm2
  pandn  %xmm10,%xmm1
  movdqa %xmm7,%xmm8
  pand   %xmm0,%xmm2
  movdqa %xmm5,%xmm10
  por    %xmm2,%xmm1
  movdqu -0x10(%rdx),%xmm2
  pand   %xmm15,%xmm2
  pand   %xmm0,%xmm2
  pandn  -0x58(%rsp),%xmm0
  por    %xmm2,%xmm0
  movdqa %xmm4,%xmm2
  punpckhbw %xmm9,%xmm4
  punpcklbw %xmm9,%xmm2
  movdqa %xmm6,%xmm9
  punpckhbw %xmm0,%xmm7
  punpcklbw %xmm1,%xmm9
  punpckhbw %xmm1,%xmm6
  punpcklbw %xmm0,%xmm8
  punpckhbw %xmm9,%xmm5
  movdqa %xmm3,%xmm0
  punpcklbw %xmm9,%xmm10
  movdqa %xmm5,%xmm1
  punpcklbw %xmm6,%xmm0
  punpckhbw %xmm6,%xmm3
  movdqa %xmm4,%xmm5
  movdqa %xmm2,%xmm6
  punpckhbw %xmm7,%xmm4
  punpcklbw %xmm8,%xmm6
  punpcklbw %xmm7,%xmm5
  punpckhbw %xmm8,%xmm2
  movdqa %xmm10,%xmm7
  punpckhbw %xmm6,%xmm10
  punpcklbw %xmm6,%xmm7
  movdqa %xmm1,%xmm6
  punpckhbw %xmm2,%xmm1
  movups %xmm10,-0x70(%rax)
  movups %xmm1,-0x50(%rax)
  movdqa %xmm0,%xmm1
  punpckhbw %xmm5,%xmm0
  punpcklbw %xmm2,%xmm6
  movups %xmm0,-0x30(%rax)
  movdqa %xmm3,%xmm0
  punpcklbw %xmm5,%xmm1
  punpckhbw %xmm4,%xmm3
  punpcklbw %xmm4,%xmm0
  movups %xmm7,-0x80(%rax)
  movups %xmm6,-0x60(%rax)
  movups %xmm1,-0x40(%rax)
  movups %xmm0,-0x20(%rax)
  movups %xmm3,-0x10(%rax)
  cmp    %rdx,%rbx
  jne    L80
  and    $0xfffffff0,%r9d
  mov    %r9d,%edx
  lea    0x0(,%r9,8),%eax
  cltq
  add    %r10,%rdx
  add    %rcx,%rax
  sub    %edx,%r9d
  jmp    L55
  nopw   0x0(%rax,%rax,1)
L13:
  and    $0x1,%ecx
  mov    %cl,(%rax)
  movzbl (%rdx),%ecx
  sar    %ecx
  and    $0x1,%ecx
  mov    %cl,0x1(%rax)
  movzbl (%rdx),%ecx
  sar    $0x2,%ecx
  and    $0x1,%ecx
  mov    %cl,0x2(%rax)
  movzbl (%rdx),%ecx
  sar    $0x3,%ecx
  and    $0x1,%ecx
  mov    %cl,0x3(%rax)
  movzbl (%rdx),%ecx
  sar    $0x4,%ecx
  and    $0x1,%ecx
  mov    %cl,0x4(%rax)
  movzbl (%rdx),%ecx
  sar    $0x5,%ecx
  and    $0x1,%ecx
  mov    %cl,0x5(%rax)
  movzbl (%rdx),%ecx
  sar    $0x6,%ecx
  and    $0x1,%ecx
  mov    %cl,0x6(%rax)
  movzbl (%rdx),%ecx
  sar    $0x7,%ecx
L101:
  add    $0x1,%rdx
  mov    %cl,0x7(%rax)
  add    $0x8,%rax
  lea    (%r9,%rdx,1),%ecx
  cmp    %ecx,%esi
  jle    L64
L55:
  movzbl (%rdx),%ecx
  test   %edi,%edi
  je     L13
  sar    $0x7,%ecx
  mov    %cl,(%rax)
  movzbl (%rdx),%ecx
  sar    $0x6,%ecx
  and    $0x1,%ecx
  mov    %cl,0x1(%rax)
  movzbl (%rdx),%ecx
  sar    $0x5,%ecx
  and    $0x1,%ecx
  mov    %cl,0x2(%rax)
  movzbl (%rdx),%ecx
  sar    $0x4,%ecx
  and    $0x1,%ecx
  mov    %cl,0x3(%rax)
  movzbl (%rdx),%ecx
  sar    $0x3,%ecx
  and    $0x1,%ecx
  mov    %cl,0x4(%rax)
  movzbl (%rdx),%ecx
  sar    $0x2,%ecx
  and    $0x1,%ecx
  mov    %cl,0x5(%rax)
  movzbl (%rdx),%ecx
  sar    %ecx
  and    $0x1,%ecx
  mov    %cl,0x6(%rax)
  movzbl (%rdx),%ecx
  and    $0x1,%ecx
  jmp    L101
L86:
  mov    %r10,%rdx
  mov    %rcx,%rax
  lea    0x8(%rcx,%r9,8),%r9
L44:
  movzbl (%rdx),%ecx
  test   %edi,%edi
  je     L14
  sar    $0x7,%ecx
  add    $0x8,%rax
  add    $0x1,%rdx
  mov    %cl,-0x8(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x6,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x7(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x5,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x6(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x4,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x5(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x3,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x4(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x2,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x3(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    %ecx
  and    $0x1,%ecx
  mov    %cl,-0x2(%rax)
  movzbl -0x1(%rdx),%ecx
  and    $0x1,%ecx
  mov    %cl,-0x1(%rax)
  cmp    %rax,%r9
  jne    L44
L73:
  shl    $0x3,%esi
  xor    %eax,%eax
  mov    %esi,(%r8)
  ret
  nopl   (%rax)
L64:
  shl    $0x3,%esi
  xor    %eax,%eax
  mov    %esi,(%r8)
  add    $0x698,%rsp
  pop    %rbx
  ret
  nopl   0x0(%rax)
L14:
  and    $0x1,%ecx
  add    $0x8,%rax
  add    $0x1,%rdx
  mov    %cl,-0x8(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    %ecx
  and    $0x1,%ecx
  mov    %cl,-0x7(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x2,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x6(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x3,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x5(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x4,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x4(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x5,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x3(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x6,%ecx
  and    $0x1,%ecx
  mov    %cl,-0x2(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x7,%ecx
  mov    %cl,-0x1(%rax)
  cmp    %r9,%rax
  jne    L44
  jmp    L73
```

tool_calls: name: read_data
arguments: data_label: D9
type_guessed: byte[16]
name: read_data
arguments: data_label: D5
type_guessed: byte[16]

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

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

assistant: ```c
int byte_to_bit(int endian, unsigned char *ibuf, int ilen, unsigned char *obuf, int *olen) {
  int i, j;
  for (i = 0; i < ilen; i++) {
    for (j = 0; j < 8; j++) {
      if (endian == 0) {
        obuf[(i * 8) + j] = (ibuf[i] >> j) & 1;
      } else {
        obuf[(i * 8) + j] = (ibuf[i] >> (7 - j)) & 1;
      }
    }
  }
  *olen = ilen * 8;
  return 0;
}
```