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

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

assistant: ```c
void init_screen(unsigned char *vram, int w, int h) {
  fill_box8(vram, w, (15), 0, 0, w - 1, h - 29);
  fill_box8(vram, w, (8), 0, h - 28, w - 1, h - 28);
  fill_box8(vram, w, (7), 0, h - 27, w - 1, h - 27);
  fill_box8(vram, w, (8), 0, h - 26, w - 1, h - 1);
  fill_box8(vram, w, (7), 3, h - 24, 59, h - 24);
  fill_box8(vram, w, (7), 2, h - 24, 2, h - 4);
  fill_box8(vram, w, (15), 3, h - 4, 59, h - 4);
  fill_box8(vram, w, (15), 59, h - 23, 59, h - 5);
  fill_box8(vram, w, (0), 2, h - 3, 59, h - 3);
  fill_box8(vram, w, (0), 60, h - 24, 60, h - 3);
  fill_box8(vram, w, (15), w - 47, h - 24, w - 4, h - 24);
  fill_box8(vram, w, (15), w - 47, h - 23, w - 47, h - 4);
  fill_box8(vram, w, (7), w - 47, h - 3, w - 4, h - 3);
  fill_box8(vram, w, (7), w - 3, h - 24, w - 3, h - 3);
}
```