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

```asm
<convert_old>:
  endbr64
  test   %edx,%edx
  mov    %rsi,%r9
  lea    0x7(%rdx),%esi
  mov    %rdi,%r8
  cmovns %edx,%esi
  mov    %edx,%edi
  sar    $0x3,%esi
  test   %ecx,%ecx
  jne    L39
  cmp    $0x7,%edx
  jle    L6
  mov    %esi,%eax
  lea    (%r9,%rax,8),%rdx
  cmp    %rdx,%r8
  setae  %dl
  add    %r8,%rax
  cmp    %rax,%r9
  setae  %al
  or     %al,%dl
  je     L28
  cmp    $0x7f,%edi
  jle    L28
  mov    %esi,%edx
  sub    $0x710,%rsp
  mov    %r8,%rcx
  mov    %r9,%rax
  shr    $0x4,%edx
  movdqa D3(%rip),%xmm7
  movdqa D59(%rip),%xmm13
  movdqa D30(%rip),%xmm12
  sub    $0x1,%edx
  movdqa D24(%rip),%xmm11
  movdqa D51(%rip),%xmm10
  shl    $0x4,%rdx
  movdqa D38(%rip),%xmm9
  movdqa D11(%rip),%xmm8
  lea    0x10(%r8,%rdx,1),%rdi
  nopw   0x0(%rax,%rax,1)
L52:
  movdqu (%rcx),%xmm0
  add    $0x10,%rcx
  sub    $0xffffffffffffff80,%rax
  movdqa %xmm0,%xmm6
  movdqa %xmm0,%xmm5
  movdqa %xmm0,%xmm4
  pand   %xmm7,%xmm6
  psrlw  $0x1,%xmm5
  movdqa %xmm0,%xmm3
  movd   %xmm6,%edx
  pand   %xmm13,%xmm5
  movdqa %xmm0,%xmm2
  mov    %dl,-0x80(%rax)
  pand   %xmm7,%xmm5
  psrlw  $0x2,%xmm4
  movdqa %xmm0,%xmm1
  psrlw  $0x3,%xmm3
  psrlw  $0x4,%xmm2
  pand   %xmm12,%xmm4
  movaps %xmm6,0x6f8(%rsp)
  pand   %xmm7,%xmm4
  pand   %xmm11,%xmm3
  pand   %xmm10,%xmm2
  movzbl 0x6f9(%rsp),%edx
  pand   %xmm7,%xmm3
  psrlw  $0x5,%xmm1
  pand   %xmm7,%xmm2
  mov    %dl,-0x78(%rax)
  pand   %xmm9,%xmm1
  psrlw  $0x6,%xmm0
  movaps %xmm6,0x6e8(%rsp)
  pand   %xmm7,%xmm1
  pand   %xmm8,%xmm0
  movzbl 0x6ea(%rsp),%edx
  pand   %xmm7,%xmm0
  mov    %dl,-0x70(%rax)
  movaps %xmm6,0x6d8(%rsp)
  movzbl 0x6db(%rsp),%edx
  mov    %dl,-0x68(%rax)
  movaps %xmm6,0x6c8(%rsp)
  movzbl 0x6cc(%rsp),%edx
  mov    %dl,-0x60(%rax)
  movaps %xmm6,0x6b8(%rsp)
  movzbl 0x6bd(%rsp),%edx
  mov    %dl,-0x58(%rax)
  movaps %xmm6,0x6a8(%rsp)
  movzbl 0x6ae(%rsp),%edx
  mov    %dl,-0x50(%rax)
  movaps %xmm6,0x698(%rsp)
  movzbl 0x69f(%rsp),%edx
  mov    %dl,-0x48(%rax)
  movaps %xmm6,0x688(%rsp)
  movzbl 0x690(%rsp),%edx
  mov    %dl,-0x40(%rax)
  movaps %xmm6,0x678(%rsp)
  movzbl 0x681(%rsp),%edx
  mov    %dl,-0x38(%rax)
  movaps %xmm6,0x668(%rsp)
  movzbl 0x672(%rsp),%edx
  mov    %dl,-0x30(%rax)
  movaps %xmm6,0x658(%rsp)
  movzbl 0x663(%rsp),%edx
  mov    %dl,-0x28(%rax)
  movaps %xmm6,0x648(%rsp)
  movzbl 0x654(%rsp),%edx
  mov    %dl,-0x20(%rax)
  movaps %xmm6,0x638(%rsp)
  movzbl 0x645(%rsp),%edx
  mov    %dl,-0x18(%rax)
  movaps %xmm6,0x628(%rsp)
  movzbl 0x636(%rsp),%edx
  mov    %dl,-0x10(%rax)
  movaps %xmm6,0x618(%rsp)
  movzbl 0x627(%rsp),%edx
  mov    %dl,-0x8(%rax)
  movd   %xmm5,%edx
  mov    %dl,-0x7f(%rax)
  movaps %xmm5,0x608(%rsp)
  movzbl 0x609(%rsp),%edx
  mov    %dl,-0x77(%rax)
  movaps %xmm5,0x5f8(%rsp)
  movzbl 0x5fa(%rsp),%edx
  mov    %dl,-0x6f(%rax)
  movaps %xmm5,0x5e8(%rsp)
  movzbl 0x5eb(%rsp),%edx
  mov    %dl,-0x67(%rax)
  movaps %xmm5,0x5d8(%rsp)
  movzbl 0x5dc(%rsp),%edx
  mov    %dl,-0x5f(%rax)
  movaps %xmm5,0x5c8(%rsp)
  movzbl 0x5cd(%rsp),%edx
  mov    %dl,-0x57(%rax)
  movaps %xmm5,0x5b8(%rsp)
  movzbl 0x5be(%rsp),%edx
  mov    %dl,-0x4f(%rax)
  movaps %xmm5,0x5a8(%rsp)
  movzbl 0x5af(%rsp),%edx
  mov    %dl,-0x47(%rax)
  movaps %xmm5,0x598(%rsp)
  movzbl 0x5a0(%rsp),%edx
  mov    %dl,-0x3f(%rax)
  movaps %xmm5,0x588(%rsp)
  movzbl 0x591(%rsp),%edx
  mov    %dl,-0x37(%rax)
  movaps %xmm5,0x578(%rsp)
  movzbl 0x582(%rsp),%edx
  mov    %dl,-0x2f(%rax)
  movaps %xmm5,0x568(%rsp)
  movzbl 0x573(%rsp),%edx
  mov    %dl,-0x27(%rax)
  movaps %xmm5,0x558(%rsp)
  movzbl 0x564(%rsp),%edx
  mov    %dl,-0x1f(%rax)
  movaps %xmm5,0x548(%rsp)
  movzbl 0x555(%rsp),%edx
  mov    %dl,-0x17(%rax)
  movaps %xmm5,0x538(%rsp)
  movzbl 0x546(%rsp),%edx
  mov    %dl,-0xf(%rax)
  movaps %xmm5,0x528(%rsp)
  movzbl 0x537(%rsp),%edx
  mov    %dl,-0x7(%rax)
  movd   %xmm4,%edx
  mov    %dl,-0x7e(%rax)
  movaps %xmm4,0x518(%rsp)
  movzbl 0x519(%rsp),%edx
  mov    %dl,-0x76(%rax)
  movaps %xmm4,0x508(%rsp)
  movzbl 0x50a(%rsp),%edx
  mov    %dl,-0x6e(%rax)
  movaps %xmm4,0x4f8(%rsp)
  movzbl 0x4fb(%rsp),%edx
  mov    %dl,-0x66(%rax)
  movaps %xmm4,0x4e8(%rsp)
  movzbl 0x4ec(%rsp),%edx
  mov    %dl,-0x5e(%rax)
  movaps %xmm4,0x4d8(%rsp)
  movzbl 0x4dd(%rsp),%edx
  mov    %dl,-0x56(%rax)
  movaps %xmm4,0x4c8(%rsp)
  movzbl 0x4ce(%rsp),%edx
  mov    %dl,-0x4e(%rax)
  movaps %xmm4,0x4b8(%rsp)
  movzbl 0x4bf(%rsp),%edx
  mov    %dl,-0x46(%rax)
  movaps %xmm4,0x4a8(%rsp)
  movzbl 0x4b0(%rsp),%edx
  mov    %dl,-0x3e(%rax)
  movaps %xmm4,0x498(%rsp)
  movzbl 0x4a1(%rsp),%edx
  mov    %dl,-0x36(%rax)
  movaps %xmm4,0x488(%rsp)
  movzbl 0x492(%rsp),%edx
  mov    %dl,-0x2e(%rax)
  movaps %xmm4,0x478(%rsp)
  movzbl 0x483(%rsp),%edx
  mov    %dl,-0x26(%rax)
  movaps %xmm4,0x468(%rsp)
  movzbl 0x474(%rsp),%edx
  mov    %dl,-0x1e(%rax)
  movaps %xmm4,0x458(%rsp)
  movzbl 0x465(%rsp),%edx
  mov    %dl,-0x16(%rax)
  movaps %xmm4,0x448(%rsp)
  movzbl 0x456(%rsp),%edx
  mov    %dl,-0xe(%rax)
  movaps %xmm4,0x438(%rsp)
  movzbl 0x447(%rsp),%edx
  mov    %dl,-0x6(%rax)
  movd   %xmm3,%edx
  mov    %dl,-0x7d(%rax)
  movaps %xmm3,0x428(%rsp)
  movzbl 0x429(%rsp),%edx
  mov    %dl,-0x75(%rax)
  movaps %xmm3,0x418(%rsp)
  movzbl 0x41a(%rsp),%edx
  mov    %dl,-0x6d(%rax)
  movaps %xmm3,0x408(%rsp)
  movzbl 0x40b(%rsp),%edx
  mov    %dl,-0x65(%rax)
  movaps %xmm3,0x3f8(%rsp)
  movzbl 0x3fc(%rsp),%edx
  mov    %dl,-0x5d(%rax)
  movaps %xmm3,0x3e8(%rsp)
  movzbl 0x3ed(%rsp),%edx
  mov    %dl,-0x55(%rax)
  movaps %xmm3,0x3d8(%rsp)
  movzbl 0x3de(%rsp),%edx
  mov    %dl,-0x4d(%rax)
  movaps %xmm3,0x3c8(%rsp)
  movzbl 0x3cf(%rsp),%edx
  mov    %dl,-0x45(%rax)
  movaps %xmm3,0x3b8(%rsp)
  movzbl 0x3c0(%rsp),%edx
  mov    %dl,-0x3d(%rax)
  movaps %xmm3,0x3a8(%rsp)
  movzbl 0x3b1(%rsp),%edx
  mov    %dl,-0x35(%rax)
  movaps %xmm3,0x398(%rsp)
  movzbl 0x3a2(%rsp),%edx
  mov    %dl,-0x2d(%rax)
  movaps %xmm3,0x388(%rsp)
  movzbl 0x393(%rsp),%edx
  mov    %dl,-0x25(%rax)
  movaps %xmm3,0x378(%rsp)
  movzbl 0x384(%rsp),%edx
  mov    %dl,-0x1d(%rax)
  movaps %xmm3,0x368(%rsp)
  movzbl 0x375(%rsp),%edx
  mov    %dl,-0x15(%rax)
  movaps %xmm3,0x358(%rsp)
  movzbl 0x366(%rsp),%edx
  mov    %dl,-0xd(%rax)
  movaps %xmm3,0x348(%rsp)
  movzbl 0x357(%rsp),%edx
  mov    %dl,-0x5(%rax)
  movd   %xmm2,%edx
  mov    %dl,-0x7c(%rax)
  movaps %xmm2,0x338(%rsp)
  movzbl 0x339(%rsp),%edx
  mov    %dl,-0x74(%rax)
  movaps %xmm2,0x328(%rsp)
  movzbl 0x32a(%rsp),%edx
  mov    %dl,-0x6c(%rax)
  movaps %xmm2,0x318(%rsp)
  movzbl 0x31b(%rsp),%edx
  mov    %dl,-0x64(%rax)
  movaps %xmm2,0x308(%rsp)
  movzbl 0x30c(%rsp),%edx
  mov    %dl,-0x5c(%rax)
  movaps %xmm2,0x2f8(%rsp)
  movzbl 0x2fd(%rsp),%edx
  mov    %dl,-0x54(%rax)
  movaps %xmm2,0x2e8(%rsp)
  movzbl 0x2ee(%rsp),%edx
  mov    %dl,-0x4c(%rax)
  movaps %xmm2,0x2d8(%rsp)
  movzbl 0x2df(%rsp),%edx
  mov    %dl,-0x44(%rax)
  movaps %xmm2,0x2c8(%rsp)
  movzbl 0x2d0(%rsp),%edx
  mov    %dl,-0x3c(%rax)
  movaps %xmm2,0x2b8(%rsp)
  movzbl 0x2c1(%rsp),%edx
  mov    %dl,-0x34(%rax)
  movaps %xmm2,0x2a8(%rsp)
  movzbl 0x2b2(%rsp),%edx
  mov    %dl,-0x2c(%rax)
  movaps %xmm2,0x298(%rsp)
  movzbl 0x2a3(%rsp),%edx
  mov    %dl,-0x24(%rax)
  movaps %xmm2,0x288(%rsp)
  movzbl 0x294(%rsp),%edx
  mov    %dl,-0x1c(%rax)
  movaps %xmm2,0x278(%rsp)
  movzbl 0x285(%rsp),%edx
  mov    %dl,-0x14(%rax)
  movaps %xmm2,0x268(%rsp)
  movzbl 0x276(%rsp),%edx
  mov    %dl,-0xc(%rax)
  movaps %xmm2,0x258(%rsp)
  movzbl 0x267(%rsp),%edx
  mov    %dl,-0x4(%rax)
  movd   %xmm1,%edx
  mov    %dl,-0x7b(%rax)
  movaps %xmm1,0x248(%rsp)
  movzbl 0x249(%rsp),%edx
  mov    %dl,-0x73(%rax)
  movaps %xmm1,0x238(%rsp)
  movzbl 0x23a(%rsp),%edx
  mov    %dl,-0x6b(%rax)
  movaps %xmm1,0x228(%rsp)
  movzbl 0x22b(%rsp),%edx
  mov    %dl,-0x63(%rax)
  movaps %xmm1,0x218(%rsp)
  movzbl 0x21c(%rsp),%edx
  mov    %dl,-0x5b(%rax)
  movaps %xmm1,0x208(%rsp)
  movzbl 0x20d(%rsp),%edx
  mov    %dl,-0x53(%rax)
  movaps %xmm1,0x1f8(%rsp)
  movzbl 0x1fe(%rsp),%edx
  mov    %dl,-0x4b(%rax)
  movaps %xmm1,0x1e8(%rsp)
  movzbl 0x1ef(%rsp),%edx
  mov    %dl,-0x43(%rax)
  movaps %xmm1,0x1d8(%rsp)
  movzbl 0x1e0(%rsp),%edx
  mov    %dl,-0x3b(%rax)
  movaps %xmm1,0x1c8(%rsp)
  movzbl 0x1d1(%rsp),%edx
  mov    %dl,-0x33(%rax)
  movaps %xmm1,0x1b8(%rsp)
  movzbl 0x1c2(%rsp),%edx
  mov    %dl,-0x2b(%rax)
  movaps %xmm1,0x1a8(%rsp)
  movzbl 0x1b3(%rsp),%edx
  mov    %dl,-0x23(%rax)
  movaps %xmm1,0x198(%rsp)
  movzbl 0x1a4(%rsp),%edx
  mov    %dl,-0x1b(%rax)
  movaps %xmm1,0x188(%rsp)
  movzbl 0x195(%rsp),%edx
  mov    %dl,-0x13(%rax)
  movaps %xmm1,0x178(%rsp)
  movzbl 0x186(%rsp),%edx
  mov    %dl,-0xb(%rax)
  movaps %xmm1,0x168(%rsp)
  movzbl 0x177(%rsp),%edx
  mov    %dl,-0x3(%rax)
  movd   %xmm0,%edx
  mov    %dl,-0x7a(%rax)
  movaps %xmm0,0x158(%rsp)
  movzbl 0x159(%rsp),%edx
  mov    %dl,-0x72(%rax)
  movaps %xmm0,0x148(%rsp)
  movzbl 0x14a(%rsp),%edx
  mov    %dl,-0x6a(%rax)
  movaps %xmm0,0x138(%rsp)
  movzbl 0x13b(%rsp),%edx
  mov    %dl,-0x62(%rax)
  movaps %xmm0,0x128(%rsp)
  movzbl 0x12c(%rsp),%edx
  mov    %dl,-0x5a(%rax)
  movaps %xmm0,0x118(%rsp)
  movzbl 0x11d(%rsp),%edx
  mov    %dl,-0x52(%rax)
  movaps %xmm0,0x108(%rsp)
  movzbl 0x10e(%rsp),%edx
  mov    %dl,-0x4a(%rax)
  movaps %xmm0,0xf8(%rsp)
  movzbl 0xff(%rsp),%edx
  mov    %dl,-0x42(%rax)
  movaps %xmm0,0xe8(%rsp)
  movzbl 0xf0(%rsp),%edx
  mov    %dl,-0x3a(%rax)
  movaps %xmm0,0xd8(%rsp)
  movzbl 0xe1(%rsp),%edx
  mov    %dl,-0x32(%rax)
  movaps %xmm0,0xc8(%rsp)
  movzbl 0xd2(%rsp),%edx
  mov    %dl,-0x2a(%rax)
  movaps %xmm0,0xb8(%rsp)
  movzbl 0xc3(%rsp),%edx
  mov    %dl,-0x22(%rax)
  movaps %xmm0,0xa8(%rsp)
  movzbl 0xb4(%rsp),%edx
  mov    %dl,-0x1a(%rax)
  movaps %xmm0,0x98(%rsp)
  movzbl 0xa5(%rsp),%edx
  mov    %dl,-0x12(%rax)
  movaps %xmm0,0x88(%rsp)
  movzbl 0x96(%rsp),%edx
  mov    %dl,-0xa(%rax)
  movaps %xmm0,0x78(%rsp)
  movzbl 0x87(%rsp),%edx
  mov    %dl,-0x2(%rax)
  movdqu -0x10(%rcx),%xmm0
  psrlw  $0x7,%xmm0
  pand   %xmm7,%xmm0
  movd   %xmm0,%edx
  mov    %dl,-0x79(%rax)
  movaps %xmm0,0x68(%rsp)
  movzbl 0x69(%rsp),%edx
  mov    %dl,-0x71(%rax)
  movaps %xmm0,0x58(%rsp)
  movzbl 0x5a(%rsp),%edx
  mov    %dl,-0x69(%rax)
  movaps %xmm0,0x48(%rsp)
  movzbl 0x4b(%rsp),%edx
  mov    %dl,-0x61(%rax)
  movaps %xmm0,0x38(%rsp)
  movzbl 0x3c(%rsp),%edx
  mov    %dl,-0x59(%rax)
  movaps %xmm0,0x28(%rsp)
  movzbl 0x2d(%rsp),%edx
  mov    %dl,-0x51(%rax)
  movaps %xmm0,0x18(%rsp)
  movzbl 0x1e(%rsp),%edx
  mov    %dl,-0x49(%rax)
  movaps %xmm0,0x8(%rsp)
  movzbl 0xf(%rsp),%edx
  mov    %dl,-0x41(%rax)
  movaps %xmm0,-0x8(%rsp)
  movzbl (%rsp),%edx
  mov    %dl,-0x39(%rax)
  movaps %xmm0,-0x18(%rsp)
  movzbl -0xf(%rsp),%edx
  mov    %dl,-0x31(%rax)
  movaps %xmm0,-0x28(%rsp)
  movzbl -0x1e(%rsp),%edx
  mov    %dl,-0x29(%rax)
  movaps %xmm0,-0x38(%rsp)
  movzbl -0x2d(%rsp),%edx
  mov    %dl,-0x21(%rax)
  movaps %xmm0,-0x48(%rsp)
  movzbl -0x3c(%rsp),%edx
  mov    %dl,-0x19(%rax)
  movaps %xmm0,-0x58(%rsp)
  movzbl -0x4b(%rsp),%edx
  mov    %dl,-0x11(%rax)
  movaps %xmm0,-0x68(%rsp)
  movzbl -0x5a(%rsp),%edx
  mov    %dl,-0x9(%rax)
  movaps %xmm0,-0x78(%rsp)
  movzbl -0x69(%rsp),%edx
  mov    %dl,-0x1(%rax)
  cmp    %rdi,%rcx
  jne    L52
  mov    %esi,%edi
  and    $0xfffffff0,%edi
  lea    0x0(,%rdi,8),%eax
  cmp    %edi,%esi
  je     L2
  movslq %edi,%rdx
  cltq
  add    %r8,%rdx
  add    %r9,%rax
  sub    %edx,%edi
  cs nopw 0x0(%rax,%rax,1)
L14:
  movzbl (%rdx),%ecx
  add    $0x1,%rdx
  add    $0x8,%rax
  and    $0x1,%ecx
  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
  shr    $0x7,%cl
  mov    %cl,-0x1(%rax)
  lea    (%rdi,%rdx,1),%ecx
  cmp    %ecx,%esi
  jg     L14
L2:
  add    $0x710,%rsp
  ret
  nopw   0x0(%rax,%rax,1)
L39:
  lea    -0x8(%rdx),%eax
  cmp    $0x7,%edx
  jle    L70
  cltq
  mov    %r8,%rdx
  xor    %edi,%edi
  add    %r9,%rax
  cs nopw 0x0(%rax,%rax,1)
L67:
  movzbl (%rdx),%ecx
  add    $0x1,%edi
  add    $0x1,%rdx
  sub    $0x8,%rax
  shr    $0x7,%cl
  mov    %cl,0x8(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x6,%ecx
  and    $0x1,%ecx
  mov    %cl,0x9(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x5,%ecx
  and    $0x1,%ecx
  mov    %cl,0xa(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x4,%ecx
  and    $0x1,%ecx
  mov    %cl,0xb(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x3,%ecx
  and    $0x1,%ecx
  mov    %cl,0xc(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    $0x2,%ecx
  and    $0x1,%ecx
  mov    %cl,0xd(%rax)
  movzbl -0x1(%rdx),%ecx
  sar    %ecx
  and    $0x1,%ecx
  mov    %cl,0xe(%rax)
  movzbl -0x1(%rdx),%ecx
  and    $0x1,%ecx
  mov    %cl,0xf(%rax)
  cmp    %esi,%edi
  jl     L67
  ret
L70:
  ret
  nopl   0x0(%rax)
L6:
  ret
  nopl   0x0(%rax)
L28:
  mov    %r8,%rdx
  mov    %r9,%rax
  cs nopw 0x0(%rax,%rax,1)
L11:
  movzbl (%rdx),%edi
  add    $0x1,%ecx
  add    $0x1,%rdx
  add    $0x8,%rax
  and    $0x1,%edi
  mov    %dil,-0x8(%rax)
  movzbl -0x1(%rdx),%edi
  sar    %edi
  and    $0x1,%edi
  mov    %dil,-0x7(%rax)
  movzbl -0x1(%rdx),%edi
  sar    $0x2,%edi
  and    $0x1,%edi
  mov    %dil,-0x6(%rax)
  movzbl -0x1(%rdx),%edi
  sar    $0x3,%edi
  and    $0x1,%edi
  mov    %dil,-0x5(%rax)
  movzbl -0x1(%rdx),%edi
  sar    $0x4,%edi
  and    $0x1,%edi
  mov    %dil,-0x4(%rax)
  movzbl -0x1(%rdx),%edi
  sar    $0x5,%edi
  and    $0x1,%edi
  mov    %dil,-0x3(%rax)
  movzbl -0x1(%rdx),%edi
  sar    $0x6,%edi
  and    $0x1,%edi
  mov    %dil,-0x2(%rax)
  movzbl -0x1(%rdx),%edi
  shr    $0x7,%dil
  mov    %dil,-0x1(%rax)
  cmp    %ecx,%esi
  jg     L11
  ret
```

tool_calls: name: read_data
arguments: tag: D3
type: byte[16]
name: read_data
arguments: tag: D59
type: byte[16]
name: read_data
arguments: tag: D30
type: byte[16]
name: read_data
arguments: tag: D24
type: byte[16]
name: read_data
arguments: tag: D51
type: byte[16]
name: read_data
arguments: tag: D38
type: byte[16]
name: read_data
arguments: tag: D11
type: byte[16]

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

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

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

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

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

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

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

assistant: ```c
void convert_old(unsigned char *rec, unsigned char *data, int numchan, int decreasing_f) {
  int ii, jj;
  if (decreasing_f) {
    for (ii = 0, jj = numchan - 8; ii < numchan / 8; ii++, jj -= 8) {
      data[jj] = rec[ii] & 0x80 ? 1 : 0;
      data[jj + 1] = rec[ii] & 0x40 ? 1 : 0;
      data[jj + 2] = rec[ii] & 0x20 ? 1 : 0;
      data[jj + 3] = rec[ii] & 0x10 ? 1 : 0;
      data[jj + 4] = rec[ii] & 0x08 ? 1 : 0;
      data[jj + 5] = rec[ii] & 0x04 ? 1 : 0;
      data[jj + 6] = rec[ii] & 0x02 ? 1 : 0;
      data[jj + 7] = rec[ii] & 0x01 ? 1 : 0;
    }
  } else {
    for (ii = 0, jj = 0; ii < numchan / 8; ii++, jj += 8) {
      data[jj] = rec[ii] & 0x01 ? 1 : 0;
      data[jj + 1] = rec[ii] & 0x02 ? 1 : 0;
      data[jj + 2] = rec[ii] & 0x04 ? 1 : 0;
      data[jj + 3] = rec[ii] & 0x08 ? 1 : 0;
      data[jj + 4] = rec[ii] & 0x10 ? 1 : 0;
      data[jj + 5] = rec[ii] & 0x20 ? 1 : 0;
      data[jj + 6] = rec[ii] & 0x40 ? 1 : 0;
      data[jj + 7] = rec[ii] & 0x80 ? 1 : 0;
    }
  }
}
```