user: 下面的汇编指令对应的C源代码是什么:

```asm
<fc8300_set_cal_front_3seg>:
  endbr64
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  sub    $0x8,%rsp
  cmp    $0x18e70,%edx
  je     L70
  ja     L429
  cmp    $0x186a0,%edx
  je     L358
  jbe    L474
  cmp    $0x18b82,%edx
  je     L342
  jbe    L179
  cmp    $0x18c00,%edx
  je     L527
  cmp    $0x18d44,%edx
  jne    L41
  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)
L59:
  mov    $0x103c,%edx
  mov    %ebp,%esi
  mov    %r12,%rdi
  call   <bbm_long_write@plt>
  xor    %eax,%eax
L313:
  add    $0x8,%rsp
  pop    %rbp
  pop    %r12
  ret
L179:
  cmp    $0x1898e,%edx
  je     L376
  cmp    $0x189c0,%edx
  jne    L41
  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    L59
  nopl   0x0(%rax,%rax,1)
L474:
  cmp    $0x18000,%edx
  je     L171
  jbe    L20
  cmp    $0x18006,%edx
  je     L334
  cmp    $0x182b8,%edx
  jne    L41
  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    L59
  nopl   0x0(%rax)
L429:
  cmp    $0x19c80,%edx
  je     L217
  jbe    L290
  cmp    $0x1a5e0,%edx
  je     L457
  jbe    L117
  cmp    $0x1b580,%edx
  je     L91
  cmp    $0x1b648,%edx
  jne    L41
  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    L59
  xchg   %ax,%ax
L20:
  cmp    $0x17e53,%edx
  je     L134
  cmp    $0x17f7f,%edx
  jne    L392
  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    L59
  nopw   0x0(%rax,%rax,1)
L117:
  cmp    $0x1a2f2,%edx
  je     L282
  cmp    $0x1a405,%edx
  jne    L41
  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    L59
  nopw   0x0(%rax,%rax,1)
L290:
  cmp    $0x192d5,%edx
  je     L6
  jbe    L403
  cmp    $0x1944c,%edx
  je     L200
  cmp    $0x19640,%edx
  jne    L41
  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    L59
  nopl   0x0(%rax)
L392:
  cmp    $0x17d72,%edx
  jne    L41
  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    L59
  xchg   %ax,%ax
L403:
  cmp    $0x19000,%edx
  je     L459
  cmp    $0x191c2,%edx
  jne    L166
  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    L59
  cs nopw 0x0(%rax,%rax,1)
L166:
  cmp    $0x18f9c,%edx
  jne    L41
  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    L59
  xchg   %ax,%ax
L70:
  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    L59
  nopw   0x0(%rax,%rax,1)
L459:
  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    L59
  nopw   0x0(%rax,%rax,1)
L200:
  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    L59
  nopw   0x0(%rax,%rax,1)
L6:
  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    L59
  nopw   0x0(%rax,%rax,1)
L282:
  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    L59
  nopw   0x0(%rax,%rax,1)
L134:
  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    L59
  nopw   0x0(%rax,%rax,1)
L91:
  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    L59
  nopw   0x0(%rax,%rax,1)
L457:
  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    L59
  nopw   0x0(%rax,%rax,1)
L217:
  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    L59
  nopw   0x0(%rax,%rax,1)
L334:
  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    L59
  nopw   0x0(%rax,%rax,1)
L171:
  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    L59
  nopw   0x0(%rax,%rax,1)
L376:
  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    L59
  nopw   0x0(%rax,%rax,1)
L527:
  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    L59
  nopw   0x0(%rax,%rax,1)
L342:
  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    L59
  nopw   0x0(%rax,%rax,1)
L358:
  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    L59
L41:
  mov    $0x1,%eax
  jmp    L313
```

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