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

```asm
<fc8300_set_cal_front_3seg>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    %rdi,%rbp
  cmp    $0x18e70,%edx
  je     L187
  ja     L569
  cmp    $0x186a0,%edx
  je     L233
  jbe    L325
  cmp    $0x18b82,%edx
  je     L526
  jbe    L108
  cmp    $0x18c00,%edx
  je     L84
  cmp    $0x18d44,%edx
  jne    L545
  movzwl %si,%ebx
  mov    $0x78d3,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3d5f3,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10af6666,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L325:
  cmp    $0x18000,%edx
  je     L552
  jbe    L98
  cmp    $0x18006,%edx
  je     L418
  cmp    $0x182b8,%edx
  jne    L116
  movzwl %si,%ebx
  mov    $0x7c1f,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3f0bb,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x103e0000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L98:
  cmp    $0x17e53,%edx
  je     L455
  cmp    $0x17f7f,%edx
  jne    L203
  movzwl %si,%ebx
  mov    $0x7d2a,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3f935,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x101b599a,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L203:
  cmp    $0x17d72,%edx
  jne    L484
  movzwl %si,%ebx
  mov    $0x7dd6,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3fead,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10054ccd,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
L79:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
L484:
  mov    $0x1,%eax
  jmp    L79
L116:
  mov    $0x1,%eax
  jmp    L79
L108:
  cmp    $0x1898e,%edx
  je     L226
  cmp    $0x189c0,%edx
  jne    L353
  movzwl %si,%ebx
  mov    $0x79e8,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3deb8,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x1089999a,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L353:
  mov    $0x1,%eax
  jmp    L79
L545:
  mov    $0x1,%eax
  jmp    L79
L569:
  cmp    $0x19c80,%edx
  je     L331
  jbe    L380
  cmp    $0x1a5e0,%edx
  je     L346
  jbe    L383
  cmp    $0x1b580,%edx
  je     L377
  cmp    $0x1b648,%edx
  jne    L578
  movzwl %si,%ebx
  mov    $0x6d85,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x37a0f,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x12686666,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L380:
  cmp    $0x192d5,%edx
  je     L561
  jbe    L121
  cmp    $0x1944c,%edx
  je     L415
  cmp    $0x19640,%edx
  jne    L412
  movzwl %si,%ebx
  mov    $0x7627,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3c03c,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x11100000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L121:
  cmp    $0x19000,%edx
  je     L527
  cmp    $0x191c2,%edx
  jne    L576
  movzwl %si,%ebx
  mov    $0x777a,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3caf9,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10dfb333,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L576:
  cmp    $0x18f9c,%edx
  jne    L541
  movzwl %si,%ebx
  mov    $0x781e,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3d031,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10c8999a,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L541:
  mov    $0x1,%eax
  jmp    L79
L412:
  mov    $0x1,%eax
  jmp    L79
L383:
  cmp    $0x1a2f2,%edx
  je     L192
  cmp    $0x1a405,%edx
  jne    L413
  movzwl %si,%ebx
  mov    $0x7248,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3a0c1,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x11a40ccd,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L413:
  mov    $0x1,%eax
  jmp    L79
L578:
  mov    $0x1,%eax
  jmp    L79
L455:
  movzwl %si,%ebx
  mov    $0x7d8c,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3fc53,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x100ec000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L552:
  movzwl %si,%ebx
  mov    $0x7d00,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3f7df,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x1020c49c,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L418:
  movzwl %si,%ebx
  mov    $0x7cfe,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3f7d0,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x1021051f,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L233:
  movzwl %si,%ebx
  mov    $0x7ae1,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3e6a5,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10680000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L226:
  movzwl %si,%ebx
  mov    $0x79f7,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3df36,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10878000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L526:
  movzwl %si,%ebx
  mov    $0x795d,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3da51,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x109c8000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L84:
  movzwl %si,%ebx
  mov    $0x7936,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3d917,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10a1cac1,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L187:
  movzwl %si,%ebx
  mov    $0x7878,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3d310,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10bc0000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L527:
  movzwl %si,%ebx
  mov    $0x7800,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3cf3d,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10cccccd,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L561:
  movzwl %si,%ebx
  mov    $0x7728,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3c862,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10eb4000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L415:
  movzwl %si,%ebx
  mov    $0x76ba,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3c4e0,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x10fb0000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L331:
  movzwl %si,%ebx
  mov    $0x745d,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3b1af,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x11533333,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L192:
  movzwl %si,%ebx
  mov    $0x7293,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x3a323,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x11988000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L346:
  movzwl %si,%ebx
  mov    $0x71c7,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x39cac,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x11b80000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
L377:
  movzwl %si,%ebx
  mov    $0x6db7,%ecx
  mov    $0x1032,%edx
  mov    %ebx,%esi
  call   <bbm_word_write@plt>
  mov    $0x37ba5,%ecx
  mov    $0x2008,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x12600000,%ecx
  mov    $0x103c,%edx
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <bbm_long_write@plt>
  mov    $0x0,%eax
  jmp    L79
```

assistant: ```c
int fc8300_set_cal_front_3seg(void *handle, unsigned short devid, unsigned int clk) {
  switch (clk) {
  case 97650:
    bbm_word_write(handle, devid, 0x1032, 0x7dd6);
    bbm_long_write(handle, devid, 0x2008, 0x3fead);
    bbm_long_write(handle, devid, 0x103c, 0x10054ccd);
    break;
  case 97875:
    bbm_word_write(handle, devid, 0x1032, 0x7d8c);
    bbm_long_write(handle, devid, 0x2008, 0x3fc53);
    bbm_long_write(handle, devid, 0x103c, 0x100ec000);
    break;
  case 98175:
    bbm_word_write(handle, devid, 0x1032, 0x7d2a);
    bbm_long_write(handle, devid, 0x2008, 0x3f935);
    bbm_long_write(handle, devid, 0x103c, 0x101b599a);
    break;
  case 98304:
    bbm_word_write(handle, devid, 0x1032, 0x7d00);
    bbm_long_write(handle, devid, 0x2008, 0x3f7df);
    bbm_long_write(handle, devid, 0x103c, 0x1020c49c);
    break;
  case 98310:
    bbm_word_write(handle, devid, 0x1032, 0x7cfe);
    bbm_long_write(handle, devid, 0x2008, 0x3f7d0);
    bbm_long_write(handle, devid, 0x103c, 0x1021051f);
    break;
  case 99000:
    bbm_word_write(handle, devid, 0x1032, 0x7c1f);
    bbm_long_write(handle, devid, 0x2008, 0x3f0bb);
    bbm_long_write(handle, devid, 0x103c, 0x103e0000);
    break;
  case 100000:
    bbm_word_write(handle, devid, 0x1032, 0x7ae1);
    bbm_long_write(handle, devid, 0x2008, 0x3e6a5);
    bbm_long_write(handle, devid, 0x103c, 0x10680000);
    break;
  case 100750:
    bbm_word_write(handle, devid, 0x1032, 0x79f7);
    bbm_long_write(handle, devid, 0x2008, 0x3df36);
    bbm_long_write(handle, devid, 0x103c, 0x10878000);
    break;
  case 100800:
    bbm_word_write(handle, devid, 0x1032, 0x79e8);
    bbm_long_write(handle, devid, 0x2008, 0x3deb8);
    bbm_long_write(handle, devid, 0x103c, 0x1089999a);
    break;
  case 101250:
    bbm_word_write(handle, devid, 0x1032, 0x795d);
    bbm_long_write(handle, devid, 0x2008, 0x3da51);
    bbm_long_write(handle, devid, 0x103c, 0x109c8000);
    break;
  case 101376:
    bbm_word_write(handle, devid, 0x1032, 0x7936);
    bbm_long_write(handle, devid, 0x2008, 0x3d917);
    bbm_long_write(handle, devid, 0x103c, 0x10a1cac1);
    break;
  case 101700:
    bbm_word_write(handle, devid, 0x1032, 0x78d3);
    bbm_long_write(handle, devid, 0x2008, 0x3d5f3);
    bbm_long_write(handle, devid, 0x103c, 0x10af6666);
    break;
  case 102000:
    bbm_word_write(handle, devid, 0x1032, 0x7878);
    bbm_long_write(handle, devid, 0x2008, 0x3d310);
    bbm_long_write(handle, devid, 0x103c, 0x10bc0000);
    break;
  case 102300:
    bbm_word_write(handle, devid, 0x1032, 0x781e);
    bbm_long_write(handle, devid, 0x2008, 0x3d031);
    bbm_long_write(handle, devid, 0x103c, 0x10c8999a);
    break;
  case 102400:
    bbm_word_write(handle, devid, 0x1032, 0x7800);
    bbm_long_write(handle, devid, 0x2008, 0x3cf3d);
    bbm_long_write(handle, devid, 0x103c, 0x10cccccd);
    break;
  case 102850:
    bbm_word_write(handle, devid, 0x1032, 0x777a);
    bbm_long_write(handle, devid, 0x2008, 0x3caf9);
    bbm_long_write(handle, devid, 0x103c, 0x10dfb333);
    break;
  case 103125:
    bbm_word_write(handle, devid, 0x1032, 0x7728);
    bbm_long_write(handle, devid, 0x2008, 0x3c862);
    bbm_long_write(handle, devid, 0x103c, 0x10eb4000);
    break;
  case 103500:
    bbm_word_write(handle, devid, 0x1032, 0x76ba);
    bbm_long_write(handle, devid, 0x2008, 0x3c4e0);
    bbm_long_write(handle, devid, 0x103c, 0x10fb0000);
    break;
  case 104000:
    bbm_word_write(handle, devid, 0x1032, 0x7627);
    bbm_long_write(handle, devid, 0x2008, 0x3c03c);
    bbm_long_write(handle, devid, 0x103c, 0x11100000);
    break;
  case 105600:
    bbm_word_write(handle, devid, 0x1032, 0x745d);
    bbm_long_write(handle, devid, 0x2008, 0x3b1af);
    bbm_long_write(handle, devid, 0x103c, 0x11533333);
    break;
  case 107250:
    bbm_word_write(handle, devid, 0x1032, 0x7293);
    bbm_long_write(handle, devid, 0x2008, 0x3a323);
    bbm_long_write(handle, devid, 0x103c, 0x11988000);
    break;
  case 107525:
    bbm_word_write(handle, devid, 0x1032, 0x7248);
    bbm_long_write(handle, devid, 0x2008, 0x3a0c1);
    bbm_long_write(handle, devid, 0x103c, 0x11a40ccd);
    break;
  case 108000:
    bbm_word_write(handle, devid, 0x1032, 0x71c7);
    bbm_long_write(handle, devid, 0x2008, 0x39cac);
    bbm_long_write(handle, devid, 0x103c, 0x11b80000);
    break;
  case 112000:
    bbm_word_write(handle, devid, 0x1032, 0x6db7);
    bbm_long_write(handle, devid, 0x2008, 0x37ba5);
    bbm_long_write(handle, devid, 0x103c, 0x12600000);
    break;
  case 112200:
    bbm_word_write(handle, devid, 0x1032, 0x6d85);
    bbm_long_write(handle, devid, 0x2008, 0x37a0f);
    bbm_long_write(handle, devid, 0x103c, 0x12686666);
    break;
  default:
    return 1;
  }
  return 0;
}
```