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

```asm
<cbal>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x98,%rsp
  mov    %edi,-0x74(%rbp)
  mov    %esi,-0x78(%rbp)
  mov    %rdx,-0x80(%rbp)
  mov    %rcx,-0x88(%rbp)
  mov    %r8,-0x90(%rbp)
  mov    %r9,-0x98(%rbp)
  movsd  D45(%rip),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movl   $0x1,-0x68(%rbp)
  mov    -0x78(%rbp),%eax
  mov    %eax,-0x64(%rbp)
  jmp    L494
L555:
  mov    -0x60(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x6c(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cmp    -0x60(%rbp),%eax
  je     L333
  movl   $0x1,-0x70(%rbp)
  jmp    L147
L110:
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x60(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rax,%rdx
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x80(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x60(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x60(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x88(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x60(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x70(%rbp)
L147:
  mov    -0x70(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jle    L110
  mov    -0x68(%rbp),%eax
  mov    %eax,-0x70(%rbp)
  jmp    L538
L79:
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x60(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rax,%rdx
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x80(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x60(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x60(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x88(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x60(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x70(%rbp)
L538:
  mov    -0x70(%rbp),%eax
  cmp    -0x78(%rbp),%eax
  jle    L79
L333:
  cmpl   $0x2,-0x58(%rbp)
  jne    L374
  addl   $0x1,-0x68(%rbp)
  jmp    L417
L374:
  cmpl   $0x1,-0x64(%rbp)
  je     L375
  subl   $0x1,-0x64(%rbp)
L494:
  movl   $0x1,-0x5c(%rbp)
  jmp    L28
L523:
  movl   $0x0,-0x50(%rbp)
  mov    -0x64(%rbp),%eax
  add    $0x1,%eax
  sub    -0x5c(%rbp),%eax
  mov    %eax,-0x6c(%rbp)
  movl   $0x1,-0x70(%rbp)
  jmp    L366
L225:
  mov    -0x70(%rbp),%eax
  cmp    -0x6c(%rbp),%eax
  je     L574
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L461
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jne    L461
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L461
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L81
L461:
  movl   $0x1,-0x50(%rbp)
  jmp    L540
L574:
  nop
L81:
  addl   $0x1,-0x70(%rbp)
L366:
  mov    -0x70(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jle    L225
L540:
  cmpl   $0x0,-0x50(%rbp)
  jne    L239
  mov    -0x64(%rbp),%eax
  mov    %eax,-0x60(%rbp)
  movl   $0x1,-0x58(%rbp)
  jmp    L555
L239:
  addl   $0x1,-0x5c(%rbp)
L28:
  mov    -0x5c(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jle    L523
  nop
L417:
  mov    -0x68(%rbp),%eax
  mov    %eax,-0x6c(%rbp)
  jmp    L338
L438:
  movl   $0x0,-0x4c(%rbp)
  mov    -0x68(%rbp),%eax
  mov    %eax,-0x70(%rbp)
  jmp    L503
L511:
  mov    -0x70(%rbp),%eax
  cmp    -0x6c(%rbp),%eax
  je     L211
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L473
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jne    L473
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L473
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L58
L473:
  movl   $0x1,-0x4c(%rbp)
  jmp    L153
L211:
  nop
L58:
  addl   $0x1,-0x70(%rbp)
L503:
  mov    -0x70(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jle    L511
L153:
  cmpl   $0x0,-0x4c(%rbp)
  jne    L390
  mov    -0x68(%rbp),%eax
  mov    %eax,-0x60(%rbp)
  movl   $0x2,-0x58(%rbp)
  jmp    L555
L390:
  addl   $0x1,-0x6c(%rbp)
L338:
  mov    -0x6c(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jle    L438
  mov    -0x68(%rbp),%eax
  mov    %eax,-0x70(%rbp)
  jmp    L516
L372:
  mov    -0x70(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  movsd  D10(%rip),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x70(%rbp)
L516:
  mov    -0x70(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jle    L372
L548:
  movl   $0x0,-0x54(%rbp)
  mov    -0x68(%rbp),%eax
  mov    %eax,-0x70(%rbp)
  jmp    L244
L232:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x68(%rbp),%eax
  mov    %eax,-0x6c(%rbp)
  jmp    L59
L160:
  mov    -0x6c(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  je     L343
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <fabs@plt>
  mov    %rax,%rbx
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <fabs@plt>
  add    %rbx,%rax
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  movsd  -0x48(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <fabs@plt>
  mov    %rax,%rbx
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <fabs@plt>
  add    %rbx,%rax
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  movsd  -0x38(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  jmp    L238
L343:
  nop
L238:
  addl   $0x1,-0x6c(%rbp)
L59:
  mov    -0x6c(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jle    L160
  pxor   %xmm0,%xmm0
  ucomisd -0x48(%rbp),%xmm0
  jp     L245
  pxor   %xmm0,%xmm0
  ucomisd -0x48(%rbp),%xmm0
  je     L176
L245:
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  jp     L149
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  je     L176
L149:
  movsd  -0x38(%rbp),%xmm0
  divsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  D10(%rip),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x48(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L71
L95:
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x48(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
L71:
  movsd  -0x20(%rbp),%xmm0
  comisd -0x48(%rbp),%xmm0
  ja     L95
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  jmp    L326
L477:
  movsd  -0x40(%rbp),%xmm0
  divsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x48(%rbp),%xmm0
  divsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
L326:
  movsd  -0x48(%rbp),%xmm0
  comisd -0x20(%rbp),%xmm0
  jae    L477
  movsd  -0x48(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  divsd  -0x40(%rbp),%xmm0
  movsd  -0x18(%rbp),%xmm2
  movsd  D7(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jae    L26
  movsd  D10(%rip),%xmm0
  divsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  mov    -0x70(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x70(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movl   $0x1,-0x54(%rbp)
  mov    -0x68(%rbp),%eax
  mov    %eax,-0x6c(%rbp)
  jmp    L104
L47:
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x70(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x6c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L104:
  mov    -0x6c(%rbp),%eax
  cmp    -0x78(%rbp),%eax
  jle    L47
  movl   $0x1,-0x6c(%rbp)
  jmp    L73
L354:
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x6c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x70(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L73:
  mov    -0x6c(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jle    L354
  jmp    L440
L176:
  nop
  jmp    L440
L26:
  nop
L440:
  addl   $0x1,-0x70(%rbp)
L244:
  mov    -0x70(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jle    L232
  cmpl   $0x0,-0x54(%rbp)
  jne    L548
  jmp    L214
L375:
  nop
L214:
  mov    -0x90(%rbp),%rax
  mov    -0x68(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0x98(%rbp),%rax
  mov    -0x64(%rbp),%edx
  mov    %edx,(%rax)
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: read_data
arguments: label: D45
datatype: f64
name: read_data
arguments: label: D10
datatype: f64
name: read_data
arguments: label: D7
datatype: f64

tool: D45: 16

tool: D10: 1

tool: D7: 0.95

assistant: ```c
void cbal(int nm, int n, double *ar, double *ai, int *low, int *igh, double *scale) {
  int i, j, k, l, m, jj, iexc;
  double c, f, g, r, s, b2, radix;
  int noconv;
  radix = 16.0;
  b2 = radix * radix;
  k = 1;
  l = n;
  goto L100;
L20:
  scale[(m)-1] = j;
  if (j != m) {
    for (i = 1; i <= l; i++) {
      f = ar[(i)-1 + ((j)-1) * (nm)];
      ar[(i)-1 + ((j)-1) * (nm)] = ar[(i)-1 + ((m)-1) * (nm)];
      ar[(i)-1 + ((m)-1) * (nm)] = f;
      f = ai[(i)-1 + ((j)-1) * (nm)];
      ai[(i)-1 + ((j)-1) * (nm)] = ai[(i)-1 + ((m)-1) * (nm)];
      ai[(i)-1 + ((m)-1) * (nm)] = f;
    }
    for (i = k; i <= n; i++) {
      f = ar[(j)-1 + ((i)-1) * (nm)];
      ar[(j)-1 + ((i)-1) * (nm)] = ar[(m)-1 + ((i)-1) * (nm)];
      ar[(m)-1 + ((i)-1) * (nm)] = f;
      f = ai[(j)-1 + ((i)-1) * (nm)];
      ai[(j)-1 + ((i)-1) * (nm)] = ai[(m)-1 + ((i)-1) * (nm)];
      ai[(m)-1 + ((i)-1) * (nm)] = f;
    }
  }
  if (iexc == 2) {
    k++;
    goto L130;
  }
  if (l == 1)
    goto L280;
  l--;
L100:
  for (jj = 1; jj <= l; jj++) {
    int test = 0;
    j = l + 1 - jj;
    for (i = 1; i <= l; i++) {
      if (i == j)
        continue;
      if (ar[(j)-1 + ((i)-1) * (nm)] != 0.0 || ai[(j)-1 + ((i)-1) * (nm)] != 0.0) {
        test = 1;
        break;
      }
    }
    if (!test) {
      m = l;
      iexc = 1;
      goto L20;
    }
  }
L130:
  for (j = k; j <= l; j++) {
    int test = 0;
    for (i = k; i <= l; i++) {
      if (i == j)
        continue;
      if (ar[(i)-1 + ((j)-1) * (nm)] != 0.0 || ai[(i)-1 + ((j)-1) * (nm)] != 0.0) {
        test = 1;
        break;
      }
    }
    if (!test) {
      m = k;
      iexc = 2;
      goto L20;
    }
  }
  for (i = k; i <= l; i++)
    scale[(i)-1] = 1.0;
  do {
    noconv = 0;
    for (i = k; i <= l; i++) {
      c = 0.0;
      r = 0.0;
      for (j = k; j <= l; j++) {
        if (j == i)
          continue;
        c += fabs(ar[(j)-1 + ((i)-1) * (nm)]) + fabs(ai[(j)-1 + ((i)-1) * (nm)]);
        r += fabs(ar[(i)-1 + ((j)-1) * (nm)]) + fabs(ai[(i)-1 + ((j)-1) * (nm)]);
      }
      if (c == 0.0 || r == 0.0)
        continue;
      g = r / radix;
      f = 1.0;
      s = c + r;
      while (c < g) {
        f *= radix;
        c *= b2;
      }
      g = r * radix;
      while (c >= g) {
        f /= radix;
        c /= b2;
      }
      if ((c + r) / f >= 0.95 * s)
        continue;
      g = 1.0 / f;
      scale[(i)-1] *= f;
      noconv = 1;
      for (j = k; j <= n; j++) {
        ar[(i)-1 + ((j)-1) * (nm)] *= g;
        ai[(i)-1 + ((j)-1) * (nm)] *= g;
      }
      for (j = 1; j <= l; j++) {
        ar[(j)-1 + ((i)-1) * (nm)] *= f;
        ai[(j)-1 + ((i)-1) * (nm)] *= f;
      }
    }
  } while (noconv);
L280:
  *low = k;
  *igh = l;
}
```