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

```asm
<devredir_cvt_to_unicode>:
  endbr64
  push   %rbp
  mov    %rsi,%rbp
  push   %rbx
  mov    %rdi,%rbx
  mov    %rsi,%rdi
  sub    $0x8,%rsp
  call   <strlen@plt>
  test   %eax,%eax
  jle    L98
  mov    %eax,%edx
  cltq
  lea    (%rbx,%rax,2),%rcx
  cmp    %rcx,%rbp
  setae  %cl
  add    %rbp,%rax
  cmp    %rax,%rbx
  setae  %al
  or     %al,%cl
  je     L72
  lea    -0x1(%rdx),%eax
  cmp    $0xe,%eax
  jbe    L72
  mov    %edx,%ecx
  xor    %eax,%eax
  pxor   %xmm1,%xmm1
  shr    $0x4,%ecx
  shl    $0x4,%rcx
  nopw   0x0(%rax,%rax,1)
L209:
  movdqu 0x0(%rbp,%rax,1),%xmm0
  movdqa %xmm0,%xmm2
  punpckhbw %xmm1,%xmm0
  punpcklbw %xmm1,%xmm2
  movups %xmm0,0x10(%rbx,%rax,2)
  movups %xmm2,(%rbx,%rax,2)
  add    $0x10,%rax
  cmp    %rax,%rcx
  jne    L209
  mov    %edx,%ecx
  and    $0xfffffff0,%ecx
  lea    (%rcx,%rcx,1),%eax
  cmp    %ecx,%edx
  je     L166
  mov    %ecx,%esi
  movzbl 0x0(%rbp,%rsi,1),%edi
  movslq %eax,%rsi
  mov    %dil,(%rbx,%rsi,1)
  lea    0x1(%rax),%esi
  lea    0x2(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0x1(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x3(%rax),%esi
  lea    0x4(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0x2(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x5(%rax),%esi
  lea    0x6(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0x3(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x7(%rax),%esi
  lea    0x8(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0x4(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x9(%rax),%esi
  lea    0xa(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0x5(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0xb(%rax),%esi
  lea    0xc(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0x6(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0xd(%rax),%esi
  lea    0xe(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0x7(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0xf(%rax),%esi
  lea    0x10(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0x8(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x11(%rax),%esi
  lea    0x12(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0x9(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x13(%rax),%esi
  lea    0x14(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0xa(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x15(%rax),%esi
  lea    0x16(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0xb(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x17(%rax),%esi
  lea    0x18(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0xc(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x19(%rax),%esi
  lea    0x1a(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  lea    0xd(%rcx),%esi
  cmp    %esi,%edx
  jle    L166
  movslq %esi,%rsi
  movslq %edi,%rdi
  add    $0xe,%ecx
  movzbl 0x0(%rbp,%rsi,1),%esi
  mov    %sil,(%rbx,%rdi,1)
  lea    0x1b(%rax),%esi
  lea    0x1c(%rax),%edi
  movslq %esi,%rsi
  movb   $0x0,(%rbx,%rsi,1)
  cmp    %ecx,%edx
  jle    L166
  movslq %ecx,%rcx
  add    $0x1d,%eax
  movslq %edi,%rdi
  movzbl 0x0(%rbp,%rcx,1),%ecx
  cltq
  mov    %cl,(%rbx,%rdi,1)
  movb   $0x0,(%rbx,%rax,1)
L166:
  add    %edx,%edx
  movslq %edx,%rax
  add    $0x1,%edx
  add    %rbx,%rax
  movslq %edx,%rdx
  movb   $0x0,(%rax)
  movb   $0x0,(%rbx,%rdx,1)
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
  nopl   0x0(%rax)
L72:
  mov    %edx,%esi
  xor    %eax,%eax
  nopl   0x0(%rax)
L193:
  movzbl 0x0(%rbp,%rax,1),%ecx
  movb   $0x0,0x1(%rbx,%rax,2)
  mov    %cl,(%rbx,%rax,2)
  add    $0x1,%rax
  cmp    %rax,%rsi
  jne    L193
  jmp    L166
L98:
  mov    %rbx,%rax
  mov    $0x1,%edx
  movb   $0x0,(%rax)
  movb   $0x0,(%rbx,%rdx,1)
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
```

assistant: ```c
void devredir_cvt_to_unicode(char *unicode, char *path) {
  int len = strlen(path);
  int i;
  int j = 0;
  for (i = 0; i < len; i++) {
    unicode[j++] = path[i];
    unicode[j++] = 0x00;
  }
  unicode[j++] = 0x00;
  unicode[j++] = 0x00;
}
```