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

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

tool_calls: name: unpack_data
arguments: tag: D10
type_guessed: byte[16]
name: unpack_data
arguments: tag: D4
type_guessed: byte[16]
name: unpack_data
arguments: tag: D49
type_guessed: byte[16]
name: unpack_data
arguments: tag: D42
type_guessed: byte[16]
name: unpack_data
arguments: tag: D19
type_guessed: byte[16]
name: unpack_data
arguments: tag: D11
type_guessed: byte[16]
name: unpack_data
arguments: tag: D43
type_guessed: byte[16]

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

tool: {"D4": [0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40]}

tool: {"D49": [0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20]}

tool: {"D42": [0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10]}

tool: {"D19": [0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08]}

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

tool: {"D43": [0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02]}

assistant: ```c
void BitStream_writeBytes(unsigned char *dest, int size, unsigned char *data) {
  unsigned char mask;
  int i, j;
  unsigned char *p;
  p = dest;
  for (i = 0; i < size; i++) {
    mask = 0x80;
    for (j = 0; j < 8; j++) {
      if (data[i] & mask) {
        *p = 1;
      } else {
        *p = 0;
      }
      p++;
      mask = mask >> 1;
    }
  }
}
```