user: What would the C source look like for the assembly code provided here:

```asm
<fc8300_set_cal_front_3seg>:
  endbr64
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  sub    $0x8,%rsp
  cmp    $0x18e70,%edx
  je     L518
  ja     L74
  cmp    $0x186a0,%edx
  je     L391
  jbe    L234
  cmp    $0x18b82,%edx
  je     L455
  jbe    L351
  cmp    $0x18c00,%edx
  je     L166
  cmp    $0x18d44,%edx
  jne    L140
  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)
L461:
  mov    $0x103c,%edx
  mov    %ebp,%esi
  mov    %r12,%rdi
  call   <bbm_long_write@plt>
  xor    %eax,%eax
L446:
  add    $0x8,%rsp
  pop    %rbp
  pop    %r12
  ret
L351:
  cmp    $0x1898e,%edx
  je     L551
  cmp    $0x189c0,%edx
  jne    L140
  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    L461
  nopl   0x0(%rax,%rax,1)
L234:
  cmp    $0x18000,%edx
  je     L485
  jbe    L281
  cmp    $0x18006,%edx
  je     L343
  cmp    $0x182b8,%edx
  jne    L140
  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    L461
  nopl   0x0(%rax)
L74:
  cmp    $0x19c80,%edx
  je     L413
  jbe    L472
  cmp    $0x1a5e0,%edx
  je     L536
  jbe    L310
  cmp    $0x1b580,%edx
  je     L118
  cmp    $0x1b648,%edx
  jne    L140
  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    L461
  xchg   %ax,%ax
L281:
  cmp    $0x17e53,%edx
  je     L528
  cmp    $0x17f7f,%edx
  jne    L427
  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    L461
  nopw   0x0(%rax,%rax,1)
L310:
  cmp    $0x1a2f2,%edx
  je     L298
  cmp    $0x1a405,%edx
  jne    L140
  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    L461
  nopw   0x0(%rax,%rax,1)
L472:
  cmp    $0x192d5,%edx
  je     L200
  jbe    L492
  cmp    $0x1944c,%edx
  je     L233
  cmp    $0x19640,%edx
  jne    L140
  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    L461
  nopl   0x0(%rax)
L427:
  cmp    $0x17d72,%edx
  jne    L140
  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    L461
  xchg   %ax,%ax
L492:
  cmp    $0x19000,%edx
  je     L145
  cmp    $0x191c2,%edx
  jne    L198
  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    L461
  cs nopw 0x0(%rax,%rax,1)
L198:
  cmp    $0x18f9c,%edx
  jne    L140
  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    L461
  xchg   %ax,%ax
L518:
  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    L461
  nopw   0x0(%rax,%rax,1)
L145:
  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    L461
  nopw   0x0(%rax,%rax,1)
L233:
  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    L461
  nopw   0x0(%rax,%rax,1)
L200:
  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    L461
  nopw   0x0(%rax,%rax,1)
L298:
  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    L461
  nopw   0x0(%rax,%rax,1)
L528:
  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    L461
  nopw   0x0(%rax,%rax,1)
L118:
  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    L461
  nopw   0x0(%rax,%rax,1)
L536:
  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    L461
  nopw   0x0(%rax,%rax,1)
L413:
  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    L461
  nopw   0x0(%rax,%rax,1)
L343:
  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    L461
  nopw   0x0(%rax,%rax,1)
L485:
  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    L461
  nopw   0x0(%rax,%rax,1)
L551:
  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    L461
  nopw   0x0(%rax,%rax,1)
L166:
  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    L461
  nopw   0x0(%rax,%rax,1)
L455:
  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    L461
  nopw   0x0(%rax,%rax,1)
L391:
  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    L461
L140:
  mov    $0x1,%eax
  jmp    L446
```

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;
}
```