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

```asm
<ahead_arrow>:
  endbr64
  sub    $0x8,%rsp
  push   $0x0
  push   $0x0
  mov    $0x0,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <write8x8@plt>
  push   $0x0
  push   $0x0
  mov    $0x0,%r9d
  mov    $0x80,%r8d
  mov    $0x80,%ecx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <write8x8@plt>
  add    $0x20,%rsp
  push   $0x0
  push   $0x0
  mov    $0x80,%r9d
  mov    $0xc0,%r8d
  mov    $0xc0,%ecx
  mov    $0x80,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <write8x8@plt>
  push   $0x0
  push   $0x80
  mov    $0xc0,%r9d
  mov    $0xe0,%r8d
  mov    $0xe0,%ecx
  mov    $0xc0,%edx
  mov    $0x80,%esi
  mov    $0x0,%edi
  call   <write8x8@plt>
  add    $0x20,%rsp
  push   $0x80
  push   $0xc0
  mov    $0xe0,%r9d
  mov    $0xf0,%r8d
  mov    $0xf0,%ecx
  mov    $0xe0,%edx
  mov    $0xc0,%esi
  mov    $0x80,%edi
  call   <write8x8@plt>
  push   $0x40
  push   $0x60
  mov    $0x70,%r9d
  mov    $0xf8,%r8d
  mov    $0xf8,%ecx
  mov    $0x70,%edx
  mov    $0x60,%esi
  mov    $0x40,%edi
  call   <write8x8@plt>
  add    $0x20,%rsp
  push   $0x20
  push   $0x30
  mov    $0x38,%r9d
  mov    $0xfc,%r8d
  mov    $0xfc,%ecx
  mov    $0x38,%edx
  mov    $0x30,%esi
  mov    $0x20,%edi
  call   <write8x8@plt>
  push   $0x10
  push   $0x18
  mov    $0x1c,%r9d
  mov    $0xfe,%r8d
  mov    $0xfe,%ecx
  mov    $0x1c,%edx
  mov    $0x18,%esi
  mov    $0x10,%edi
  call   <write8x8@plt>
  add    $0x20,%rsp
  push   $0x8
  push   $0xc
  mov    $0xe,%r9d
  mov    $0xff,%r8d
  mov    $0xff,%ecx
  mov    $0xe,%edx
  mov    $0xc,%esi
  mov    $0x8,%edi
  call   <write8x8@plt>
  push   $0x8
  push   $0xc
  mov    $0xe,%r9d
  mov    $0xff,%r8d
  mov    $0xff,%ecx
  mov    $0xe,%edx
  mov    $0xc,%esi
  mov    $0x8,%edi
  call   <write8x8@plt>
  add    $0x20,%rsp
  push   $0x4
  push   $0x6
  mov    $0x7,%r9d
  mov    $0x7f,%r8d
  mov    $0x7f,%ecx
  mov    $0x7,%edx
  mov    $0x6,%esi
  mov    $0x4,%edi
  call   <write8x8@plt>
  push   $0x2
  push   $0x3
  mov    $0x3,%r9d
  mov    $0x3f,%r8d
  mov    $0x3f,%ecx
  mov    $0x3,%edx
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   <write8x8@plt>
  add    $0x20,%rsp
  push   $0x1
  push   $0x1
  mov    $0x1,%r9d
  mov    $0x1f,%r8d
  mov    $0x1f,%ecx
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   <write8x8@plt>
  push   $0x0
  push   $0x0
  mov    $0x0,%r9d
  mov    $0xf,%r8d
  mov    $0xf,%ecx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <write8x8@plt>
  add    $0x20,%rsp
  push   $0x0
  push   $0x0
  mov    $0x0,%r9d
  mov    $0x7,%r8d
  mov    $0x7,%ecx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <write8x8@plt>
  push   $0x0
  push   $0x0
  mov    $0x0,%r9d
  mov    $0x3,%r8d
  mov    $0x3,%ecx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <write8x8@plt>
  add    $0x20,%rsp
  push   $0x0
  push   $0x0
  mov    $0x0,%r9d
  mov    $0x1,%r8d
  mov    $0x1,%ecx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <write8x8@plt>
  add    $0x18,%rsp
  ret
```

assistant: ```c
void ahead_arrow() {
  write8x8(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0);
  write8x8(0x0, 0x0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0);
  write8x8(0x0, 0x0, 0x80, 0xc0, 0xc0, 0x80, 0x0, 0x0);
  write8x8(0x0, 0x80, 0xc0, 0xe0, 0xe0, 0xc0, 0x80, 0x0);
  write8x8(0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80);
  write8x8(0x40, 0x60, 0x70, 0xf8, 0xf8, 0x70, 0x60, 0x40);
  write8x8(0x20, 0x30, 0x38, 0xfc, 0xfc, 0x38, 0x30, 0x20);
  write8x8(0x10, 0x18, 0x1c, 0xfe, 0xfe, 0x1c, 0x18, 0x10);
  write8x8(0x8, 0xc, 0xe, 0xff, 0xff, 0xe, 0xc, 0x8);
  write8x8(0x8, 0xc, 0xe, 0xff, 0xff, 0xe, 0xc, 0x8);
  write8x8(0x4, 0x6, 0x7, 0x7f, 0x7f, 0x7, 0x6, 0x4);
  write8x8(0x2, 0x3, 0x3, 0x3f, 0x3f, 0x3, 0x3, 0x2);
  write8x8(0x1, 0x1, 0x1, 0x1f, 0x1f, 0x1, 0x1, 0x1);
  write8x8(0x0, 0x0, 0x0, 0xf, 0xf, 0x0, 0x0, 0x0);
  write8x8(0x0, 0x0, 0x0, 0x7, 0x7, 0x0, 0x0, 0x0);
  write8x8(0x0, 0x0, 0x0, 0x3, 0x3, 0x0, 0x0, 0x0);
  write8x8(0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0);
}
```