user: 请从给定的汇编指令推导出C源代码:

```asm
<ls_costN_nm5_f0>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    %rdx,-0x28(%rbp)
  mov    %rcx,-0x30(%rbp)
  mov    %r8d,-0x34(%rbp)
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L378
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  movsd  (%rax),%xmm0
  jmp    L852
L378:
  pxor   %xmm0,%xmm0
L852:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L937
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L937:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L777
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  jmp    L840
L777:
  pxor   %xmm0,%xmm0
L840:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L510
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L510:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L751
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  jmp    L234
L751:
  pxor   %xmm0,%xmm0
L234:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L515
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L515:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L104
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  jmp    L275
L104:
  pxor   %xmm0,%xmm0
L275:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L815
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L815:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L773
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm0
  jmp    L817
L773:
  pxor   %xmm0,%xmm0
L817:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L932
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L932:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L184
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  jmp    L715
L184:
  pxor   %xmm0,%xmm0
L715:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L896
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L896:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L303
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm0
  jmp    L352
L303:
  pxor   %xmm0,%xmm0
L352:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L680
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x30,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L680:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L747
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm0
  jmp    L434
L747:
  pxor   %xmm0,%xmm0
L434:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L754
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x38,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L754:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L556
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm0
  jmp    L921
L556:
  pxor   %xmm0,%xmm0
L921:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L820
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x40,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L820:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L371
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm0
  jmp    L185
L371:
  pxor   %xmm0,%xmm0
L185:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L507
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x48,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L507:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L501
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  jmp    L447
L501:
  pxor   %xmm0,%xmm0
L447:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L292
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x50,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L292:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L181
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm0
  jmp    L390
L181:
  pxor   %xmm0,%xmm0
L390:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L326
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x58,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L326:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L596
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm0
  jmp    L909
L596:
  pxor   %xmm0,%xmm0
L909:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L488
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x60,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L488:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L900
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm0
  jmp    L430
L900:
  pxor   %xmm0,%xmm0
L430:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L929
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x68,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L929:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L837
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm0
  jmp    L625
L837:
  pxor   %xmm0,%xmm0
L625:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L350
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x70,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L350:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L175
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm0
  jmp    L107
L175:
  pxor   %xmm0,%xmm0
L107:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L469
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x78,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L469:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L629
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm0
  jmp    L655
L629:
  pxor   %xmm0,%xmm0
L655:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L59
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L59:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L135
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm0
  jmp    L382
L135:
  pxor   %xmm0,%xmm0
L382:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L157
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x88,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L157:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L139
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm0
  jmp    L752
L139:
  pxor   %xmm0,%xmm0
L752:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L137
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x90,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L137:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L153
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm0
  jmp    L236
L153:
  pxor   %xmm0,%xmm0
L236:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L70
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0x98,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L70:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L809
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm0
  jmp    L659
L809:
  pxor   %xmm0,%xmm0
L659:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L121
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0xa0,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L121:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L280
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm0
  jmp    L813
L280:
  pxor   %xmm0,%xmm0
L813:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L102
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0xa8,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L102:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L878
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm0
  jmp    L526
L878:
  pxor   %xmm0,%xmm0
L526:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L206
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0xb0,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L206:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L873
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm0
  jmp    L331
L873:
  pxor   %xmm0,%xmm0
L331:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L245
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  add    $0xb8,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L245:
  movsd  D0(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L483
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L483:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L857
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L857:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L436
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L436:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L768
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L768:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L540
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L540:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L580
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L580:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L391
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x30,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L391:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L76
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x38,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L76:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L694
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x40,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L694:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L188
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x48,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L188:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L800
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x50,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L800:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L915
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x58,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L915:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L210
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x60,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L210:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L161
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x68,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L161:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L517
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x70,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L517:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L339
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x78,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L339:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L481
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L481:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L938
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x88,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L938:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L305
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x90,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L305:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L529
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x98,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L529:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L805
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xa0,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L805:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L354
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xa8,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L354:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L344
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xb0,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L344:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L52
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xb8,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L52:
  mov    $0x0,%eax
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: label: D0
data_type: f64

tool: D0: 1

assistant: ```c
int ls_costN_nm5_f0(const double **arg, double **res, int *iw, double *w, int mem) {
  double a0 = arg[0] ? arg[0][0] : 0;
  if (res[0] != 0)
    res[0][0] = a0;
  a0 = arg[0] ? arg[0][1] : 0;
  if (res[0] != 0)
    res[0][1] = a0;
  a0 = arg[0] ? arg[0][2] : 0;
  if (res[0] != 0)
    res[0][2] = a0;
  a0 = arg[0] ? arg[0][3] : 0;
  if (res[0] != 0)
    res[0][3] = a0;
  a0 = arg[0] ? arg[0][4] : 0;
  if (res[0] != 0)
    res[0][4] = a0;
  a0 = arg[0] ? arg[0][5] : 0;
  if (res[0] != 0)
    res[0][5] = a0;
  a0 = arg[0] ? arg[0][6] : 0;
  if (res[0] != 0)
    res[0][6] = a0;
  a0 = arg[0] ? arg[0][7] : 0;
  if (res[0] != 0)
    res[0][7] = a0;
  a0 = arg[0] ? arg[0][8] : 0;
  if (res[0] != 0)
    res[0][8] = a0;
  a0 = arg[0] ? arg[0][9] : 0;
  if (res[0] != 0)
    res[0][9] = a0;
  a0 = arg[0] ? arg[0][10] : 0;
  if (res[0] != 0)
    res[0][10] = a0;
  a0 = arg[0] ? arg[0][11] : 0;
  if (res[0] != 0)
    res[0][11] = a0;
  a0 = arg[0] ? arg[0][12] : 0;
  if (res[0] != 0)
    res[0][12] = a0;
  a0 = arg[0] ? arg[0][13] : 0;
  if (res[0] != 0)
    res[0][13] = a0;
  a0 = arg[0] ? arg[0][14] : 0;
  if (res[0] != 0)
    res[0][14] = a0;
  a0 = arg[0] ? arg[0][15] : 0;
  if (res[0] != 0)
    res[0][15] = a0;
  a0 = arg[0] ? arg[0][16] : 0;
  if (res[0] != 0)
    res[0][16] = a0;
  a0 = arg[0] ? arg[0][17] : 0;
  if (res[0] != 0)
    res[0][17] = a0;
  a0 = arg[0] ? arg[0][18] : 0;
  if (res[0] != 0)
    res[0][18] = a0;
  a0 = arg[0] ? arg[0][19] : 0;
  if (res[0] != 0)
    res[0][19] = a0;
  a0 = arg[0] ? arg[0][20] : 0;
  if (res[0] != 0)
    res[0][20] = a0;
  a0 = arg[0] ? arg[0][21] : 0;
  if (res[0] != 0)
    res[0][21] = a0;
  a0 = arg[0] ? arg[0][22] : 0;
  if (res[0] != 0)
    res[0][22] = a0;
  a0 = arg[0] ? arg[0][23] : 0;
  if (res[0] != 0)
    res[0][23] = a0;
  a0 = 1.;
  if (res[1] != 0)
    res[1][0] = a0;
  if (res[1] != 0)
    res[1][1] = a0;
  if (res[1] != 0)
    res[1][2] = a0;
  if (res[1] != 0)
    res[1][3] = a0;
  if (res[1] != 0)
    res[1][4] = a0;
  if (res[1] != 0)
    res[1][5] = a0;
  if (res[1] != 0)
    res[1][6] = a0;
  if (res[1] != 0)
    res[1][7] = a0;
  if (res[1] != 0)
    res[1][8] = a0;
  if (res[1] != 0)
    res[1][9] = a0;
  if (res[1] != 0)
    res[1][10] = a0;
  if (res[1] != 0)
    res[1][11] = a0;
  if (res[1] != 0)
    res[1][12] = a0;
  if (res[1] != 0)
    res[1][13] = a0;
  if (res[1] != 0)
    res[1][14] = a0;
  if (res[1] != 0)
    res[1][15] = a0;
  if (res[1] != 0)
    res[1][16] = a0;
  if (res[1] != 0)
    res[1][17] = a0;
  if (res[1] != 0)
    res[1][18] = a0;
  if (res[1] != 0)
    res[1][19] = a0;
  if (res[1] != 0)
    res[1][20] = a0;
  if (res[1] != 0)
    res[1][21] = a0;
  if (res[1] != 0)
    res[1][22] = a0;
  if (res[1] != 0)
    res[1][23] = a0;
  return 0;
}
```