user: Please show me the C implementation that matches the assembly code listed below:

```asm
<librpip_uart_config_convert_l2b>:
  endbr64
  cmp    $0x7a120,%edi
  je     L147
  jg     L159
  cmp    $0x9600,%edi
  je     L28
  jle    L178
  cmp    $0x38400,%edi
  je     L138
  jle    L35
  cmp    $0x70800,%edi
  jne    L42
  mov    D179(%rip),%rax
  mov    (%rax),%eax
  ret
  nopl   0x0(%rax,%rax,1)
L159:
  cmp    $0x1e8480,%edi
  je     L148
  jle    L210
  cmp    $0x3567e0,%edi
  je     L247
  jle    L227
  cmp    $0x3d0900,%edi
  jne    L42
  mov    D203(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L35:
  cmp    $0xe100,%edi
  je     L71
  cmp    $0x1c200,%edi
  jne    L42
  mov    D77(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L178:
  cmp    $0x12c0,%edi
  je     L216
  jle    L181
  cmp    $0x2580,%edi
  je     L45
  cmp    $0x4b00,%edi
  jne    L42
  mov    D191(%rip),%rax
  mov    (%rax),%eax
  ret
  nopl   0x0(%rax,%rax,1)
L227:
  cmp    $0x2625a0,%edi
  je     L264
  cmp    $0x2dc6c0,%edi
  jne    L42
  mov    D151(%rip),%rax
  mov    (%rax),%eax
  ret
  xchg   %ax,%ax
L210:
  cmp    $0xf4240,%edi
  je     L8
  jle    L32
  cmp    $0x119400,%edi
  je     L59
  cmp    $0x16e360,%edi
  jne    L42
  mov    D182(%rip),%rax
  mov    (%rax),%eax
  ret
  nopl   0x0(%rax)
L181:
  cmp    $0x4b0,%edi
  je     L52
  cmp    $0x960,%edi
  jne    L42
  mov    D180(%rip),%rax
  mov    (%rax),%eax
  ret
  xchg   %ax,%ax
L32:
  cmp    $0x8ca00,%edi
  je     L183
  cmp    $0xe1000,%edi
  jne    L42
  mov    D121(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L42:
  xor    %eax,%eax
  ret
  nopl   0x0(%rax,%rax,1)
L138:
  mov    D208(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L28:
  mov    D8(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L147:
  mov    D0(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L183:
  mov    D153(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L52:
  mov    D127(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L59:
  mov    D131(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L8:
  mov    D128(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L264:
  mov    D198(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L45:
  mov    D67(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L216:
  mov    D125(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L71:
  mov    D110(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L247:
  mov    D174(%rip),%rax
  mov    (%rax),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L148:
  mov    D137(%rip),%rax
  mov    (%rax),%eax
  ret
```

assistant: ```c
uint32_t librpip_uart_config_convert_l2b(uint32_t baud) {
  switch (baud) {
  case 1200:
    return B1200;
    break;
  case 2400:
    return B2400;
    break;
  case 4800:
    return B4800;
    break;
  case 9600:
    return B9600;
    break;
  case 19200:
    return B19200;
    break;
  case 38400:
    return B38400;
    break;
  case 57600:
    return B57600;
    break;
  case 115200:
    return B115200;
    break;
  case 230400:
    return B230400;
    break;
  case 460800:
    return B460800;
    break;
  case 500000:
    return B500000;
    break;
  case 576000:
    return B576000;
    break;
  case 921600:
    return B921600;
    break;
  case 1000000:
    return B1000000;
    break;
  case 1152000:
    return B1152000;
    break;
  case 1500000:
    return B1500000;
    break;
  case 2000000:
    return B2000000;
    break;
  case 2500000:
    return B2500000;
    break;
  case 3000000:
    return B3000000;
    break;
  case 3500000:
    return B3500000;
    break;
  case 4000000:
    return B4000000;
    break;
  }
  return 0;
}
```