user: Converte this assembly snippet into its equivalent C code:

```asm
<draw_desktop>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  movq   $0xa0000,-0x8(%rbp)
  movl   $0x140,-0x10(%rbp)
  movl   $0xc8,-0xc(%rbp)
  mov    -0xc(%rbp),%eax
  lea    -0x1d(%rax),%ecx
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0xe
  mov    %ecx,%r9d
  mov    %edx,%r8d
  mov    $0x0,%ecx
  mov    $0x0,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x1c(%rax),%edi
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0xc(%rbp),%eax
  lea    -0x1c(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x8
  mov    %edi,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    $0x0,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x1b(%rax),%edi
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0xc(%rbp),%eax
  lea    -0x1b(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x7
  mov    %edi,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    $0x0,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0xc(%rbp),%eax
  lea    -0x1a(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x8
  mov    %edi,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    $0x0,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x18(%rax),%ecx
  mov    -0xc(%rbp),%eax
  lea    -0x18(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x7
  mov    %ecx,%r9d
  mov    $0x3b,%r8d
  mov    %edx,%ecx
  mov    $0x3,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x4(%rax),%ecx
  mov    -0xc(%rbp),%eax
  lea    -0x18(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x7
  mov    %ecx,%r9d
  mov    $0x2,%r8d
  mov    %edx,%ecx
  mov    $0x2,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x4(%rax),%ecx
  mov    -0xc(%rbp),%eax
  lea    -0x4(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0xf
  mov    %ecx,%r9d
  mov    $0x3b,%r8d
  mov    %edx,%ecx
  mov    $0x3,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x5(%rax),%ecx
  mov    -0xc(%rbp),%eax
  lea    -0x17(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0xf
  mov    %ecx,%r9d
  mov    $0x3b,%r8d
  mov    %edx,%ecx
  mov    $0x3b,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x3(%rax),%ecx
  mov    -0xc(%rbp),%eax
  lea    -0x3(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x0
  mov    %ecx,%r9d
  mov    $0x3b,%r8d
  mov    %edx,%ecx
  mov    $0x2,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x3(%rax),%ecx
  mov    -0xc(%rbp),%eax
  lea    -0x18(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x0
  mov    %ecx,%r9d
  mov    $0x3c,%r8d
  mov    %edx,%ecx
  mov    $0x3c,%edx
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x18(%rax),%r8d
  mov    -0x10(%rbp),%eax
  lea    -0x4(%rax),%edi
  mov    -0xc(%rbp),%eax
  lea    -0x18(%rax),%ecx
  mov    -0x10(%rbp),%eax
  lea    -0x2f(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0xf
  mov    %r8d,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x4(%rax),%r8d
  mov    -0x10(%rbp),%eax
  lea    -0x2f(%rax),%edi
  mov    -0xc(%rbp),%eax
  lea    -0x17(%rax),%ecx
  mov    -0x10(%rbp),%eax
  lea    -0x2f(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0xf
  mov    %r8d,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x3(%rax),%r8d
  mov    -0x10(%rbp),%eax
  lea    -0x4(%rax),%edi
  mov    -0xc(%rbp),%eax
  lea    -0x3(%rax),%ecx
  mov    -0x10(%rbp),%eax
  lea    -0x2f(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x7
  mov    %r8d,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  mov    -0xc(%rbp),%eax
  lea    -0x3(%rax),%r8d
  mov    -0x10(%rbp),%eax
  lea    -0x3(%rax),%edi
  mov    -0xc(%rbp),%eax
  lea    -0x18(%rax),%ecx
  mov    -0x10(%rbp),%eax
  lea    -0x3(%rax),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x7
  mov    %r8d,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <box_fill8@plt>
  add    $0x10,%rsp
  nop
  leave
  ret
```

assistant: ```c
void draw_desktop(void) {
  char *vram;
  int width, height;
  vram = (char *)0xa0000;
  width = 320;
  height = 200;
  box_fill8(vram, width, 0, 0, width - 1, height - 29, 14);
  box_fill8(vram, width, 0, height - 28, width - 1, height - 28, 8);
  box_fill8(vram, width, 0, height - 27, width - 1, height - 27, 7);
  box_fill8(vram, width, 0, height - 26, width - 1, height - 1, 8);
  box_fill8(vram, width, 3, height - 24, 59, height - 24, 7);
  box_fill8(vram, width, 2, height - 24, 2, height - 4, 7);
  box_fill8(vram, width, 3, height - 4, 59, height - 4, 15);
  box_fill8(vram, width, 59, height - 23, 59, height - 5, 15);
  box_fill8(vram, width, 2, height - 3, 59, height - 3, 0);
  box_fill8(vram, width, 60, height - 24, 60, height - 3, 0);
  box_fill8(vram, width, width - 47, height - 24, width - 4, height - 24, 15);
  box_fill8(vram, width, width - 47, height - 23, width - 47, height - 4, 15);
  box_fill8(vram, width, width - 47, height - 3, width - 4, height - 3, 7);
  box_fill8(vram, width, width - 3, height - 24, width - 3, height - 3, 7);
}
```