user: Demonstrate the C code that generates the assembly output below:

```asm
<parse_baud_rate>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <atoi@plt>
  cmp    $0x3d0900,%eax
  je     L288
  cmp    $0x3d0900,%eax
  jg     L456
  cmp    $0x3567e0,%eax
  je     L588
  cmp    $0x3567e0,%eax
  jg     L456
  cmp    $0x2dc6c0,%eax
  je     L428
  cmp    $0x2dc6c0,%eax
  jg     L456
  cmp    $0x2625a0,%eax
  je     L28
  cmp    $0x2625a0,%eax
  jg     L456
  cmp    $0x1e8480,%eax
  je     L521
  cmp    $0x1e8480,%eax
  jg     L456
  cmp    $0x16e360,%eax
  je     L60
  cmp    $0x16e360,%eax
  jg     L456
  cmp    $0x119400,%eax
  je     L332
  cmp    $0x119400,%eax
  jg     L456
  cmp    $0xf4240,%eax
  je     L127
  cmp    $0xf4240,%eax
  jg     L456
  cmp    $0xe1000,%eax
  je     L304
  cmp    $0xe1000,%eax
  jg     L456
  cmp    $0x8ca00,%eax
  je     L194
  cmp    $0x8ca00,%eax
  jg     L456
  cmp    $0x7a120,%eax
  je     L102
  cmp    $0x7a120,%eax
  jg     L456
  cmp    $0x70800,%eax
  je     L407
  cmp    $0x70800,%eax
  jg     L456
  cmp    $0x38400,%eax
  je     L12
  cmp    $0x38400,%eax
  jg     L456
  cmp    $0x1c200,%eax
  je     L423
  cmp    $0x1c200,%eax
  jg     L456
  cmp    $0xe100,%eax
  je     L637
  cmp    $0xe100,%eax
  jg     L456
  cmp    $0x9600,%eax
  je     L455
  cmp    $0x9600,%eax
  jg     L456
  cmp    $0x4b00,%eax
  je     L472
  cmp    $0x4b00,%eax
  jg     L456
  cmp    $0x2580,%eax
  je     L326
  cmp    $0x2580,%eax
  jg     L456
  cmp    $0x12c0,%eax
  je     L382
  cmp    $0x12c0,%eax
  jg     L456
  cmp    $0x960,%eax
  je     L140
  cmp    $0x960,%eax
  jg     L456
  cmp    $0x12c,%eax
  je     L25
  cmp    $0x4b0,%eax
  je     L270
  jmp    L456
L25:
  mov    D206(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L270:
  mov    D63(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L140:
  mov    D79(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L382:
  mov    D110(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L326:
  mov    D183(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L472:
  mov    D210(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L455:
  mov    D119(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L637:
  mov    D38(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L423:
  mov    D195(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L12:
  mov    D151(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L407:
  mov    D136(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L102:
  mov    D81(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L194:
  mov    D52(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L304:
  mov    D140(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L127:
  mov    D147(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L332:
  mov    D214(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L60:
  mov    D152(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L521:
  mov    D41(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L28:
  mov    D141(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L428:
  mov    D145(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L588:
  mov    D181(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L288:
  mov    D115(%rip),%rax
  mov    (%rax),%eax
  jmp    L470
L456:
  mov    D94(%rip),%rax
  mov    (%rax),%eax
L470:
  leave
  ret
```

assistant: ```c
speed_t parse_baud_rate(char *str) {
  switch (atoi(str)) {
  case 300:
    return B300;
  case 1200:
    return B1200;
  case 2400:
    return B2400;
  case 4800:
    return B4800;
  case 9600:
    return B9600;
  case 19200:
    return B19200;
  case 38400:
    return B38400;
  case 57600:
    return B57600;
  case 115200:
    return B115200;
  case 230400:
    return B230400;
  case 460800:
    return B460800;
  case 500000:
    return B500000;
  case 576000:
    return B576000;
  case 921600:
    return B921600;
  case 1000000:
    return B1000000;
  case 1152000:
    return B1152000;
  case 1500000:
    return B1500000;
  case 2000000:
    return B2000000;
  case 2500000:
    return B2500000;
  case 3000000:
    return B3000000;
  case 3500000:
    return B3500000;
  case 4000000:
    return B4000000;
  default:
    return B0;
  }
}
```