user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<__cvmx_spi4000_configure_mac>:
  endbr64
  push   %rbp
  mov    $0x3ff,%edx
  mov    %edi,%ebp
  mov    $0x505,%esi
  push   %rbx
  xor    %ebx,%ebx
  sub    $0x8,%rsp
  call   <__cvmx_spi4000_write@plt>
  mov    $0x3ff,%edx
  mov    $0x620,%esi
  mov    %ebp,%edi
  call   <__cvmx_spi4000_write@plt>
  mov    $0x3ff,%edx
  mov    $0x59e,%esi
  mov    %ebp,%edi
  call   <__cvmx_spi4000_write@plt>
  xor    %edx,%edx
  mov    $0x505,%esi
  mov    %ebp,%edi
  call   <__cvmx_spi4000_write@plt>
  xor    %edx,%edx
  mov    $0x500,%esi
  mov    %ebp,%edi
  call   <__cvmx_spi4000_write@plt>
  nopl   0x0(%rax,%rax,1)
L10:
  mov    %ebx,%esi
  mov    $0x3,%edx
  mov    %ebp,%edi
  or     $0x10,%esi
  call   <__cvmx_spi4000_write@plt>
  mov    %ebx,%esi
  mov    $0x3fff,%edx
  mov    %ebp,%edi
  or     $0xf,%esi
  call   <__cvmx_spi4000_write@plt>
  mov    %ebx,%esi
  xor    %edx,%edx
  mov    %ebp,%edi
  call   <__cvmx_spi4000_write@plt>
  mov    %ebx,%esi
  xor    %edx,%edx
  mov    %ebp,%edi
  or     $0x1,%esi
  call   <__cvmx_spi4000_write@plt>
  mov    %ebx,%esi
  mov    $0x7,%edx
  mov    %ebp,%edi
  or     $0x12,%esi
  call   <__cvmx_spi4000_write@plt>
  mov    %ebx,%esi
  mov    $0x1,%edx
  mov    %ebp,%edi
  or     $0x15,%esi
  call   <__cvmx_spi4000_write@plt>
  mov    %ebx,%esi
  mov    $0x11cd,%edx
  mov    %ebp,%edi
  or     $0x18,%esi
  call   <__cvmx_spi4000_write@plt>
  mov    %ebx,%esi
  xor    %edx,%edx
  mov    %ebp,%edi
  or     $0x19,%esi
  sub    $0xffffff80,%ebx
  call   <__cvmx_spi4000_write@plt>
  cmp    $0x500,%ebx
  jne    L10
  mov    $0x3ff,%edx
  mov    $0x59f,%esi
  mov    %ebp,%edi
  mov    $0x600,%ebx
  call   <__cvmx_spi4000_write@plt>
  nopl   0x0(%rax)
L14:
  mov    %ebx,%esi
  mov    $0x900,%edx
  mov    %ebp,%edi
  call   <__cvmx_spi4000_write@plt>
  lea    0xa(%rbx),%esi
  mov    $0x800,%edx
  mov    %ebp,%edi
  call   <__cvmx_spi4000_write@plt>
  lea    0x14(%rbx),%esi
  mov    $0x380,%edx
  mov    %ebp,%edi
  call   <__cvmx_spi4000_write@plt>
  add    $0x1,%ebx
  cmp    $0x60a,%ebx
  jne    L14
  mov    %ebp,%edi
  xor    %edx,%edx
  mov    $0x59e,%esi
  call   <__cvmx_spi4000_write@plt>
  mov    %ebp,%edi
  xor    %edx,%edx
  mov    $0x620,%esi
  call   <__cvmx_spi4000_write@plt>
  add    $0x8,%rsp
  mov    %ebp,%edi
  mov    $0x3ff,%edx
  pop    %rbx
  mov    $0x500,%esi
  pop    %rbp
  jmp    1050 <__cvmx_spi4000_write@plt>
```

assistant: ```c
void __cvmx_spi4000_configure_mac(int interface) {
  int port;
  __cvmx_spi4000_write(interface, 0x0505, 0x3ff);
  __cvmx_spi4000_write(interface, 0x0620, 0x3ff);
  __cvmx_spi4000_write(interface, 0x059e, 0x3ff);
  __cvmx_spi4000_write(interface, 0x0505, 0x0);
  __cvmx_spi4000_write(interface, 0x0500, 0x0);
  for (port = 0; port < 10; port++) {
    int port_offset = port << 7;
    __cvmx_spi4000_write(interface, port_offset | 0x0010, 0x3);
    __cvmx_spi4000_write(interface, port_offset | 0x000f, 0x3fff);
    __cvmx_spi4000_write(interface, port_offset | 0x0000, 0x0000);
    __cvmx_spi4000_write(interface, port_offset | 0x0001, 0x0000);
    if (0)
      __cvmx_spi4000_write(interface, port_offset | 0x0012, 0);
    else
      __cvmx_spi4000_write(interface, port_offset | 0x0012, 0x7);
    __cvmx_spi4000_write(interface, port_offset | 0x0015, 0x1);
    __cvmx_spi4000_write(interface, port_offset | 0x0018, 0x11cd);
    __cvmx_spi4000_write(interface, port_offset | 0x0019, 0x00);
  }
  __cvmx_spi4000_write(interface, 0x059f, 0x03ff);
  for (port = 0; port < 10; port++) {
    __cvmx_spi4000_write(interface, port + 0x0600, 0x0900);
    __cvmx_spi4000_write(interface, port + 0x060a, 0x0800);
    __cvmx_spi4000_write(interface, port + 0x0614, 0x0380);
  }
  __cvmx_spi4000_write(interface, 0x059e, 0x0);
  __cvmx_spi4000_write(interface, 0x0620, 0x0);
  __cvmx_spi4000_write(interface, 0x0500, 0x03ff);
}
```