user: What is the c source code of the assembly code below?

```asm
<vde_chain_nm2>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    %rdx,-0x38(%rbp)
  mov    %rcx,-0x40(%rbp)
  mov    %r8,-0x48(%rbp)
  movq   $0x0,-0x28(%rbp)
  movq   $0x0,-0x48(%rbp)
  movq   $0x0,-0x40(%rbp)
  mov    -0x30(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L456
  mov    -0x30(%rbp),%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  jmp    L346
L456:
  pxor   %xmm0,%xmm0
L346:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L949
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L949:
  mov    -0x30(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L409
  mov    -0x30(%rbp),%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm0
  jmp    L531
L409:
  pxor   %xmm0,%xmm0
L531:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1145
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1145:
  mov    -0x30(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L932
  mov    -0x30(%rbp),%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  jmp    L935
L932:
  pxor   %xmm0,%xmm0
L935:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L667
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L667:
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L13
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  movsd  (%rax),%xmm0
  jmp    L900
L13:
  pxor   %xmm0,%xmm0
L900:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L666
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L666:
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L487
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  jmp    L125
L487:
  pxor   %xmm0,%xmm0
L125:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L264
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L264:
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L3
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  jmp    L615
L3:
  pxor   %xmm0,%xmm0
L615:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1013
  mov    -0x38(%rbp),%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1013:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L66
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  jmp    L1056
L66:
  pxor   %xmm0,%xmm0
L1056:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1170
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1170:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L95
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm0
  jmp    L196
L95:
  pxor   %xmm0,%xmm0
L196:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1098
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1098:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L305
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  jmp    L1118
L305:
  pxor   %xmm0,%xmm0
L1118:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1155
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1155:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L813
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L813:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L983
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L983:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L653
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L653:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L205
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm0
  jmp    L58
L205:
  pxor   %xmm0,%xmm0
L58:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L350
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x30,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L350:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L785
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  jmp    L946
L785:
  pxor   %xmm0,%xmm0
L946:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L601
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x38,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L601:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L512
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm0
  jmp    L259
L512:
  pxor   %xmm0,%xmm0
L259:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L549
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x40,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L549:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L172
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x48,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L172:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L825
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x50,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L825:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L312
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x58,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L312:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1256
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm0
  jmp    L230
L1256:
  pxor   %xmm0,%xmm0
L230:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L56
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x60,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L56:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L896
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm0
  jmp    L786
L896:
  pxor   %xmm0,%xmm0
L786:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L307
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x68,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L307:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L257
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm0
  jmp    L1148
L257:
  pxor   %xmm0,%xmm0
L1148:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L419
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x70,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L419:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1123
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x78,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1123:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L793
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L793:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L739
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x88,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L739:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L637
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm0
  jmp    L638
L637:
  pxor   %xmm0,%xmm0
L638:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L109
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x90,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L109:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L578
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm0
  jmp    L1088
L578:
  pxor   %xmm0,%xmm0
L1088:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L709
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x98,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L709:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L576
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm0
  jmp    L41
L576:
  pxor   %xmm0,%xmm0
L41:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L356
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xa0,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L356:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L142
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xa8,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L142:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L784
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xb0,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L784:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L352
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xb8,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L352:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1143
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xd8,%rax
  movsd  (%rax),%xmm0
  jmp    L572
L1143:
  pxor   %xmm0,%xmm0
L572:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L585
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xc0,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L585:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1127
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xe0,%rax
  movsd  (%rax),%xmm0
  jmp    L114
L1127:
  pxor   %xmm0,%xmm0
L114:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1006
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xc8,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1006:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L528
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xe8,%rax
  movsd  (%rax),%xmm0
  jmp    L891
L528:
  pxor   %xmm0,%xmm0
L891:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L175
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xd0,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L175:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1251
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xd8,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1251:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L859
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xe0,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L859:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L480
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xe8,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L480:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1247
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x108,%rax
  movsd  (%rax),%xmm0
  jmp    L1152
L1247:
  pxor   %xmm0,%xmm0
L1152:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L541
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xf0,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L541:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L559
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x110,%rax
  movsd  (%rax),%xmm0
  jmp    L684
L559:
  pxor   %xmm0,%xmm0
L684:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1207
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0xf8,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1207:
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L318
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x118,%rax
  movsd  (%rax),%xmm0
  jmp    L1010
L318:
  pxor   %xmm0,%xmm0
L1010:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1233
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x100,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1233:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L258
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x108,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L258:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L263
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x110,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L263:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L57
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x118,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L57:
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L928
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  jmp    L683
L928:
  pxor   %xmm0,%xmm0
L683:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L828
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L828:
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L627
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm0
  jmp    L294
L627:
  pxor   %xmm0,%xmm0
L294:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L197
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L197:
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L144
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  jmp    L309
L144:
  pxor   %xmm0,%xmm0
L309:
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L289
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L289:
  movsd  D7(%rip),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L867
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L867:
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L818
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L818:
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L890
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L890:
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L850
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm0
  jmp    L617
L850:
  pxor   %xmm0,%xmm0
L617:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L997
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x30,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L997:
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L975
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  jmp    L36
L975:
  pxor   %xmm0,%xmm0
L36:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1184
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x38,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1184:
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L43
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm0
  jmp    L942
L43:
  pxor   %xmm0,%xmm0
L942:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L47
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x40,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L47:
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L212
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x48,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L212:
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L790
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x50,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L790:
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1102
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x58,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1102:
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L406
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm0
  jmp    L351
L406:
  pxor   %xmm0,%xmm0
L351:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L389
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x60,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L389:
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L580
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm0
  jmp    L947
L580:
  pxor   %xmm0,%xmm0
L947:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L661
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x68,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L661:
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1205
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm0
  jmp    L561
L1205:
  pxor   %xmm0,%xmm0
L561:
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L584
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x70,%rax
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L584:
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L340
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x78,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L340:
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1108
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L1108:
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L533
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x88,%rax
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L533:
  mov    $0x0,%eax
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: tag: D7
type_guessed: f64

tool: D7: 1

assistant: ```c
int vde_chain_nm2(void *mem, const double **arg, double **res, int *iw, double *w) {
  mem = 0;
  mem += 0;
  w = 0;
  w += 0;
  iw = 0;
  iw += 0;
  double a0 = arg[0] ? arg[0][3] : 0;
  if (res[0] != 0)
    res[0][0] = a0;
  a0 = arg[0] ? arg[0][4] : 0;
  if (res[0] != 0)
    res[0][1] = a0;
  a0 = arg[0] ? arg[0][5] : 0;
  if (res[0] != 0)
    res[0][2] = a0;
  a0 = arg[3] ? arg[3][0] : 0;
  if (res[0] != 0)
    res[0][3] = a0;
  a0 = arg[3] ? arg[3][1] : 0;
  if (res[0] != 0)
    res[0][4] = a0;
  a0 = arg[3] ? arg[3][2] : 0;
  if (res[0] != 0)
    res[0][5] = a0;
  a0 = arg[1] ? arg[1][3] : 0;
  if (res[1] != 0)
    res[1][0] = a0;
  a0 = arg[1] ? arg[1][4] : 0;
  if (res[1] != 0)
    res[1][1] = a0;
  a0 = arg[1] ? arg[1][5] : 0;
  if (res[1] != 0)
    res[1][2] = a0;
  a0 = 0.;
  if (res[1] != 0)
    res[1][3] = a0;
  if (res[1] != 0)
    res[1][4] = a0;
  if (res[1] != 0)
    res[1][5] = a0;
  double a1 = arg[1] ? arg[1][9] : 0;
  if (res[1] != 0)
    res[1][6] = a1;
  a1 = arg[1] ? arg[1][10] : 0;
  if (res[1] != 0)
    res[1][7] = a1;
  a1 = arg[1] ? arg[1][11] : 0;
  if (res[1] != 0)
    res[1][8] = a1;
  if (res[1] != 0)
    res[1][9] = a0;
  if (res[1] != 0)
    res[1][10] = a0;
  if (res[1] != 0)
    res[1][11] = a0;
  a1 = arg[1] ? arg[1][15] : 0;
  if (res[1] != 0)
    res[1][12] = a1;
  a1 = arg[1] ? arg[1][16] : 0;
  if (res[1] != 0)
    res[1][13] = a1;
  a1 = arg[1] ? arg[1][17] : 0;
  if (res[1] != 0)
    res[1][14] = a1;
  if (res[1] != 0)
    res[1][15] = a0;
  if (res[1] != 0)
    res[1][16] = a0;
  if (res[1] != 0)
    res[1][17] = a0;
  a1 = arg[1] ? arg[1][21] : 0;
  if (res[1] != 0)
    res[1][18] = a1;
  a1 = arg[1] ? arg[1][22] : 0;
  if (res[1] != 0)
    res[1][19] = a1;
  a1 = arg[1] ? arg[1][23] : 0;
  if (res[1] != 0)
    res[1][20] = a1;
  if (res[1] != 0)
    res[1][21] = a0;
  if (res[1] != 0)
    res[1][22] = a0;
  if (res[1] != 0)
    res[1][23] = a0;
  a1 = arg[1] ? arg[1][27] : 0;
  if (res[1] != 0)
    res[1][24] = a1;
  a1 = arg[1] ? arg[1][28] : 0;
  if (res[1] != 0)
    res[1][25] = a1;
  a1 = arg[1] ? arg[1][29] : 0;
  if (res[1] != 0)
    res[1][26] = a1;
  if (res[1] != 0)
    res[1][27] = a0;
  if (res[1] != 0)
    res[1][28] = a0;
  if (res[1] != 0)
    res[1][29] = a0;
  a1 = arg[1] ? arg[1][33] : 0;
  if (res[1] != 0)
    res[1][30] = a1;
  a1 = arg[1] ? arg[1][34] : 0;
  if (res[1] != 0)
    res[1][31] = a1;
  a1 = arg[1] ? arg[1][35] : 0;
  if (res[1] != 0)
    res[1][32] = a1;
  if (res[1] != 0)
    res[1][33] = a0;
  if (res[1] != 0)
    res[1][34] = a0;
  if (res[1] != 0)
    res[1][35] = a0;
  a1 = arg[2] ? arg[2][3] : 0;
  if (res[2] != 0)
    res[2][0] = a1;
  a1 = arg[2] ? arg[2][4] : 0;
  if (res[2] != 0)
    res[2][1] = a1;
  a1 = arg[2] ? arg[2][5] : 0;
  if (res[2] != 0)
    res[2][2] = a1;
  a1 = 1.;
  if (res[2] != 0)
    res[2][3] = a1;
  if (res[2] != 0)
    res[2][4] = a0;
  if (res[2] != 0)
    res[2][5] = a0;
  double a2 = arg[2] ? arg[2][9] : 0;
  if (res[2] != 0)
    res[2][6] = a2;
  a2 = arg[2] ? arg[2][10] : 0;
  if (res[2] != 0)
    res[2][7] = a2;
  a2 = arg[2] ? arg[2][11] : 0;
  if (res[2] != 0)
    res[2][8] = a2;
  if (res[2] != 0)
    res[2][9] = a0;
  if (res[2] != 0)
    res[2][10] = a1;
  if (res[2] != 0)
    res[2][11] = a0;
  a2 = arg[2] ? arg[2][15] : 0;
  if (res[2] != 0)
    res[2][12] = a2;
  a2 = arg[2] ? arg[2][16] : 0;
  if (res[2] != 0)
    res[2][13] = a2;
  a2 = arg[2] ? arg[2][17] : 0;
  if (res[2] != 0)
    res[2][14] = a2;
  if (res[2] != 0)
    res[2][15] = a0;
  if (res[2] != 0)
    res[2][16] = a0;
  if (res[2] != 0)
    res[2][17] = a1;
  return 0;
}
```