user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<fc8300_set_cal_front_3seg>:
  endbr64
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  sub    $0x8,%rsp
  cmp    $0x18e70,%edx
  je     L533
  ja     L360
  cmp    $0x186a0,%edx
  je     L517
  jbe    L48
  cmp    $0x18b82,%edx
  je     L108
  jbe    L296
  cmp    $0x18c00,%edx
  je     L0
  cmp    $0x18d44,%edx
  jne    L308
  movzwl %si,%ebp
  mov    $0x78d3,%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    $0x10af6666,%ecx
  nopl   (%rax)
L206:
  mov    $0x103c,%edx
  mov    %ebp,%esi
  mov    %r12,%rdi
  call   <bbm_long_write@plt>
  xor    %eax,%eax
L79:
  add    $0x8,%rsp
  pop    %rbp
  pop    %r12
  ret
L296:
  cmp    $0x1898e,%edx
  je     L89
  cmp    $0x189c0,%edx
  jne    L308
  movzwl %si,%ebp
  mov    $0x79e8,%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    $0x1089999a,%ecx
  jmp    L206
  nopl   0x0(%rax,%rax,1)
L48:
  cmp    $0x18000,%edx
  je     L405
  jbe    L348
  cmp    $0x18006,%edx
  je     L277
  cmp    $0x182b8,%edx
  jne    L308
  movzwl %si,%ebp
  mov    $0x7c1f,%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    $0x103e0000,%ecx
  jmp    L206
  nopl   0x0(%rax)
L360:
  cmp    $0x19c80,%edx
  je     L2
  jbe    L548
  cmp    $0x1a5e0,%edx
  je     L222
  jbe    L421
  cmp    $0x1b580,%edx
  je     L480
  cmp    $0x1b648,%edx
  jne    L308
  movzwl %si,%ebp
  mov    $0x6d85,%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    $0x12686666,%ecx
  jmp    L206
  xchg   %ax,%ax
L348:
  cmp    $0x17e53,%edx
  je     L478
  cmp    $0x17f7f,%edx
  jne    L362
  movzwl %si,%ebp
  mov    $0x7d2a,%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    $0x101b599a,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L421:
  cmp    $0x1a2f2,%edx
  je     L438
  cmp    $0x1a405,%edx
  jne    L308
  movzwl %si,%ebp
  mov    $0x7248,%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    $0x11a40ccd,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L548:
  cmp    $0x192d5,%edx
  je     L293
  jbe    L511
  cmp    $0x1944c,%edx
  je     L192
  cmp    $0x19640,%edx
  jne    L308
  movzwl %si,%ebp
  mov    $0x7627,%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    $0x11100000,%ecx
  jmp    L206
  nopl   0x0(%rax)
L362:
  cmp    $0x17d72,%edx
  jne    L308
  movzwl %si,%ebp
  mov    $0x7dd6,%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    $0x10054ccd,%ecx
  jmp    L206
  xchg   %ax,%ax
L511:
  cmp    $0x19000,%edx
  je     L510
  cmp    $0x191c2,%edx
  jne    L489
  movzwl %si,%ebp
  mov    $0x777a,%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    $0x10dfb333,%ecx
  jmp    L206
  cs nopw 0x0(%rax,%rax,1)
L489:
  cmp    $0x18f9c,%edx
  jne    L308
  movzwl %si,%ebp
  mov    $0x781e,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3d031,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x10c8999a,%ecx
  jmp    L206
  xchg   %ax,%ax
L533:
  movzwl %si,%ebp
  mov    $0x7878,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3d310,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x10bc0000,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L510:
  movzwl %si,%ebp
  mov    $0x7800,%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    $0x10cccccd,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L192:
  movzwl %si,%ebp
  mov    $0x76ba,%ecx
  mov    $0x1032,%edx
  mov    %ebp,%esi
  call   <bbm_word_write@plt>
  mov    $0x3c4e0,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  mov    $0x2008,%edx
  call   <bbm_long_write@plt>
  mov    $0x10fb0000,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L293:
  movzwl %si,%ebp
  mov    $0x7728,%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    $0x10eb4000,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L438:
  movzwl %si,%ebp
  mov    $0x7293,%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    $0x11988000,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L478:
  movzwl %si,%ebp
  mov    $0x7d8c,%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    $0x100ec000,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L480:
  movzwl %si,%ebp
  mov    $0x6db7,%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    $0x12600000,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L222:
  movzwl %si,%ebp
  mov    $0x71c7,%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    $0x11b80000,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L2:
  movzwl %si,%ebp
  mov    $0x745d,%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    $0x11533333,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L277:
  movzwl %si,%ebp
  mov    $0x7cfe,%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    $0x1021051f,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L405:
  movzwl %si,%ebp
  mov    $0x7d00,%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    $0x1020c49c,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L89:
  movzwl %si,%ebp
  mov    $0x79f7,%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    $0x10878000,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L0:
  movzwl %si,%ebp
  mov    $0x7936,%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    $0x10a1cac1,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L108:
  movzwl %si,%ebp
  mov    $0x795d,%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    $0x109c8000,%ecx
  jmp    L206
  nopw   0x0(%rax,%rax,1)
L517:
  movzwl %si,%ebp
  mov    $0x7ae1,%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    $0x10680000,%ecx
  jmp    L206
L308:
  mov    $0x1,%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;
}
```