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

```asm
<fc8300_set_cal_front_1seg>:
  endbr64
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  sub    $0x8,%rsp
  cmp    $0x19000,%edx
  je     L153
  ja     L171
  cmp    $0x186a0,%edx
  je     L302
  jbe    L305
  cmp    $0x18b82,%edx
  je     L267
  jbe    L296
  cmp    $0x18c00,%edx
  je     L30
  cmp    $0x18d44,%edx
  jne    L7
  movzwl %si,%ebp
  mov    $0x2dea,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3d5f3,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x215ecccd,%ecx
  nopl   (%rax)
L345:
  mov    $0x103c,%edx
  mov    %ebp,%esi
  mov    %r12,%rdi
  call   <bbm_long_write@plt>
  xor    %eax,%eax
L110:
  add    $0x8,%rsp
  pop    %rbp
  pop    %r12
  ret
L296:
  cmp    $0x1898e,%edx
  je     L391
  cmp    $0x189c0,%edx
  jne    L7
  movzwl %si,%ebp
  mov    $0x2e53,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3deb8,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x21133333,%ecx
  jmp    L345
  nopl   0x0(%rax,%rax,1)
L305:
  cmp    $0x18000,%edx
  je     L478
  jbe    L114
  cmp    $0x18006,%edx
  je     L64
  cmp    $0x182b8,%edx
  jne    L7
  movzwl %si,%ebp
  mov    $0x2f2b,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3f0bb,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x207c0000,%ecx
  jmp    L345
  nopl   0x0(%rax)
L171:
  cmp    $0x1a405,%edx
  je     L71
  jbe    L287
  cmp    $0x1b3f0,%edx
  je     L338
  jbe    L514
  cmp    $0x1b580,%edx
  je     L448
  cmp    $0x1b648,%edx
  jne    L7
  movzwl %si,%ebp
  mov    $0x299e,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x37a0f,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x24d0cccd,%ecx
  jmp    L345
  xchg   %ax,%ax
L114:
  cmp    $0x17e53,%edx
  je     L112
  cmp    $0x17f7f,%edx
  jne    L339
  movzwl %si,%ebp
  mov    $0x2f90,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3f935,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x2036b333,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L514:
  cmp    $0x1a5e0,%edx
  je     L491
  cmp    $0x1af40,%edx
  jne    L7
  movzwl %si,%ebp
  mov    $0x2a4c,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x38892,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x2439999a,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L287:
  cmp    $0x19640,%edx
  je     L55
  jbe    L440
  cmp    $0x19c80,%edx
  je     L288
  cmp    $0x1a2f2,%edx
  jne    L7
  movzwl %si,%ebp
  mov    $0x2b8a,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3a323,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x23310000,%ecx
  jmp    L345
  nopl   0x0(%rax)
L339:
  cmp    $0x17d72,%edx
  jne    L7
  movzwl %si,%ebp
  mov    $0x2fd1,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3fead,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x200a999a,%ecx
  jmp    L345
  xchg   %ax,%ax
L440:
  cmp    $0x191c2,%edx
  je     L313
  cmp    $0x192d5,%edx
  jne    L7
  movzwl %si,%ebp
  mov    $0x2d48,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3c862,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x21d68000,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L153:
  movzwl %si,%ebp
  mov    $0x2d9a,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3cf3d,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x2199999a,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L313:
  movzwl %si,%ebp
  mov    $0x2d67,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3caf9,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x21bf6666,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L288:
  movzwl %si,%ebp
  mov    $0x2c38,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3b1af,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x22a66666,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L55:
  movzwl %si,%ebp
  mov    $0x2ce6,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3c03c,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x22200000,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L491:
  movzwl %si,%ebp
  mov    $0x2b3c,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x39cac,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x23700000,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L112:
  movzwl %si,%ebp
  mov    $0x2fb5,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3fc53,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x201d8000,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L448:
  movzwl %si,%ebp
  mov    $0x29b1,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x37ba5,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x24c00000,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L338:
  movzwl %si,%ebp
  mov    $0x29d7,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x37ed8,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x249e6666,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L71:
  movzwl %si,%ebp
  mov    $0x2b6d,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3a0c1,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x2348199a,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L64:
  movzwl %si,%ebp
  mov    $0x2f7f,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3f7d0,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x20420a3d,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L478:
  movzwl %si,%ebp
  mov    $0x2f80,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3f7df,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x20418937,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L391:
  movzwl %si,%ebp
  mov    $0x2e59,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3df36,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x210f0000,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L30:
  movzwl %si,%ebp
  mov    $0x2e10,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3d917,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x21439581,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L267:
  movzwl %si,%ebp
  mov    $0x2e1e,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3da51,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x21390000,%ecx
  jmp    L345
  nopw   0x0(%rax,%rax,1)
L302:
  movzwl %si,%ebp
  mov    $0x2eb2,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3e6a5,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x20d00000,%ecx
  jmp    L345
L7:
  mov    $0x1,%eax
  jmp    L110
```

assistant: ```c
int fc8300_set_cal_front_1seg(void *handle, unsigned short devid, unsigned int clk) {
  switch (clk) {
  case 97650:
    bbm_word_write(handle, devid, 0x1032, 0x2fd1);
    bbm_long_write(handle, devid, 0x2008, 0x3fead);
    bbm_long_write(handle, devid, 0x103c, 0x200a999a);
    break;
  case 97875:
    bbm_word_write(handle, devid, 0x1032, 0x2fb5);
    bbm_long_write(handle, devid, 0x2008, 0x3fc53);
    bbm_long_write(handle, devid, 0x103c, 0x201d8000);
    break;
  case 98175:
    bbm_word_write(handle, devid, 0x1032, 0x2f90);
    bbm_long_write(handle, devid, 0x2008, 0x3f935);
    bbm_long_write(handle, devid, 0x103c, 0x2036b333);
    break;
  case 98304:
    bbm_word_write(handle, devid, 0x1032, 0x2f80);
    bbm_long_write(handle, devid, 0x2008, 0x3f7df);
    bbm_long_write(handle, devid, 0x103c, 0x20418937);
    break;
  case 98310:
    bbm_word_write(handle, devid, 0x1032, 0x2f7f);
    bbm_long_write(handle, devid, 0x2008, 0x3f7d0);
    bbm_long_write(handle, devid, 0x103c, 0x20420a3d);
    break;
  case 99000:
    bbm_word_write(handle, devid, 0x1032, 0x2f2b);
    bbm_long_write(handle, devid, 0x2008, 0x3f0bb);
    bbm_long_write(handle, devid, 0x103c, 0x207c0000);
    break;
  case 100000:
    bbm_word_write(handle, devid, 0x1032, 0x2eb2);
    bbm_long_write(handle, devid, 0x2008, 0x3e6a5);
    bbm_long_write(handle, devid, 0x103c, 0x20d00000);
    break;
  case 100750:
    bbm_word_write(handle, devid, 0x1032, 0x2e59);
    bbm_long_write(handle, devid, 0x2008, 0x3df36);
    bbm_long_write(handle, devid, 0x103c, 0x210f0000);
    break;
  case 100800:
    bbm_word_write(handle, devid, 0x1032, 0x2e53);
    bbm_long_write(handle, devid, 0x2008, 0x3deb8);
    bbm_long_write(handle, devid, 0x103c, 0x21133333);
    break;
  case 101250:
    bbm_word_write(handle, devid, 0x1032, 0x2e1e);
    bbm_long_write(handle, devid, 0x2008, 0x3da51);
    bbm_long_write(handle, devid, 0x103c, 0x21390000);
    break;
  case 101376:
    bbm_word_write(handle, devid, 0x1032, 0x2e10);
    bbm_long_write(handle, devid, 0x2008, 0x3d917);
    bbm_long_write(handle, devid, 0x103c, 0x21439581);
    break;
  case 101700:
    bbm_word_write(handle, devid, 0x1032, 0x2dea);
    bbm_long_write(handle, devid, 0x2008, 0x3d5f3);
    bbm_long_write(handle, devid, 0x103c, 0x215ecccd);
    break;
  case 102400:
    bbm_word_write(handle, devid, 0x1032, 0x2d9a);
    bbm_long_write(handle, devid, 0x2008, 0x3cf3d);
    bbm_long_write(handle, devid, 0x103c, 0x2199999a);
    break;
  case 102850:
    bbm_word_write(handle, devid, 0x1032, 0x2d67);
    bbm_long_write(handle, devid, 0x2008, 0x3caf9);
    bbm_long_write(handle, devid, 0x103c, 0x21bf6666);
    break;
  case 103125:
    bbm_word_write(handle, devid, 0x1032, 0x2d48);
    bbm_long_write(handle, devid, 0x2008, 0x3c862);
    bbm_long_write(handle, devid, 0x103c, 0x21d68000);
    break;
  case 104000:
    bbm_word_write(handle, devid, 0x1032, 0x2ce6);
    bbm_long_write(handle, devid, 0x2008, 0x3c03c);
    bbm_long_write(handle, devid, 0x103c, 0x22200000);
    break;
  case 105600:
    bbm_word_write(handle, devid, 0x1032, 0x2c38);
    bbm_long_write(handle, devid, 0x2008, 0x3b1af);
    bbm_long_write(handle, devid, 0x103c, 0x22a66666);
    break;
  case 107250:
    bbm_word_write(handle, devid, 0x1032, 0x2b8a);
    bbm_long_write(handle, devid, 0x2008, 0x3a323);
    bbm_long_write(handle, devid, 0x103c, 0x23310000);
    break;
  case 107525:
    bbm_word_write(handle, devid, 0x1032, 0x2b6d);
    bbm_long_write(handle, devid, 0x2008, 0x3a0c1);
    bbm_long_write(handle, devid, 0x103c, 0x2348199a);
    break;
  case 108000:
    bbm_word_write(handle, devid, 0x1032, 0x2b3c);
    bbm_long_write(handle, devid, 0x2008, 0x39cac);
    bbm_long_write(handle, devid, 0x103c, 0x23700000);
    break;
  case 110400:
    bbm_word_write(handle, devid, 0x1032, 0x2a4c);
    bbm_long_write(handle, devid, 0x2008, 0x38892);
    bbm_long_write(handle, devid, 0x103c, 0x2439999a);
    break;
  case 111600:
    bbm_word_write(handle, devid, 0x1032, 0x29d7);
    bbm_long_write(handle, devid, 0x2008, 0x37ed8);
    bbm_long_write(handle, devid, 0x103c, 0x249e6666);
    break;
  case 112000:
    bbm_word_write(handle, devid, 0x1032, 0x29b1);
    bbm_long_write(handle, devid, 0x2008, 0x37ba5);
    bbm_long_write(handle, devid, 0x103c, 0x24c00000);
    break;
  case 112200:
    bbm_word_write(handle, devid, 0x1032, 0x299e);
    bbm_long_write(handle, devid, 0x2008, 0x37a0f);
    bbm_long_write(handle, devid, 0x103c, 0x24d0cccd);
    break;
  default:
    return 1;
  }
  return 0;
}
```