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

```asm
<bioR9_3d>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x10,%rsp
  mov    0x50(%rsp),%r13
  mov    0x58(%rsp),%ebx
  mov    0x60(%rsp),%ebp
  mov    0x68(%rsp),%r12d
  mov    0x70(%rsp),%r11d
  cmp    $0x1,%ebx
  setg   %al
  movzbl %al,%eax
  cmp    $0x1,%ebp
  setg   %r14b
  movzbl %r14b,%r14d
  add    %r14d,%eax
  cmp    $0x1,%r12d
  setg   %r14b
  movzbl %r14b,%r14d
  add    %r14d,%eax
  test   %r11d,%r11d
  jne    L65
  movss  D133(%rip),%xmm0
  mov    D125(%rip),%r14d
L93:
  movss  D125(%rip),%xmm1
  cmp    $0x2,%eax
  je     L67
  movss  D137(%rip),%xmm1
  cmp    $0x1,%eax
  jne    L67
  movss  D95(%rip),%xmm1
L67:
  cmp    $0x1,%ebx
  jle    L18
  cvtss2sd %xmm1,%xmm1
  mulsd  D15(%rip),%xmm1
  cvtsd2ss %xmm1,%xmm1
L18:
  cmp    $0x1,%ebp
  jle    L7
  cvtss2sd %xmm1,%xmm1
  mulsd  D15(%rip),%xmm1
  cvtsd2ss %xmm1,%xmm1
L7:
  cmp    $0x1,%r12d
  jle    L46
  cvtss2sd %xmm1,%xmm1
  mulsd  D15(%rip),%xmm1
  cvtsd2ss %xmm1,%xmm1
L46:
  test   %eax,%eax
  jne    L99
  movss  D125(%rip),%xmm1
  movaps %xmm1,%xmm0
  movd   %xmm1,%r14d
  movss  %xmm1,0xc(%rsp)
  movss  %xmm1,0x8(%rsp)
  movss  %xmm1,0x4(%rsp)
L2:
  test   %r11d,%r11d
  je     L107
  cvtss2sd %xmm0,%xmm0
  push   %r12
  push   %rbp
  push   %rbx
  push   %r13
  push   0x68(%rsp)
  push   0x68(%rsp)
  cvtss2sd %xmm1,%xmm1
  mov    $0x2,%eax
  call   <bioR1__3d@plt>
  add    $0x30,%rsp
  movd   %r14d,%xmm5
  pxor   %xmm0,%xmm0
  cvtss2sd %xmm5,%xmm0
  mov    $0x0,%r8d
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %ebx,%esi
  mov    %r13,%rdi
  mov    $0x1,%eax
  call   <bio_3d_postmult@plt>
L100:
  pxor   %xmm0,%xmm0
  cvtss2sd 0xc(%rsp),%xmm0
  mov    $0x1,%r8d
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %ebx,%esi
  mov    %r13,%rdi
  mov    $0x1,%eax
  call   <bio_3d_postmult@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%rsp),%xmm0
  mov    $0x0,%r8d
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %ebx,%esi
  mov    %r13,%rdi
  mov    $0x1,%eax
  call   <bio_3d_postmult@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x4(%rsp),%xmm0
  mov    $0x1,%r8d
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %ebx,%esi
  mov    %r13,%rdi
  mov    $0x1,%eax
  call   <bio_3d_postmult@plt>
  add    $0x10,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L65:
  movss  D47(%rip),%xmm0
  mov    D60(%rip),%r14d
  jmp    L93
L99:
  movss  D131(%rip),%xmm2
  movss  %xmm2,0xc(%rsp)
  movss  D135(%rip),%xmm3
  movss  %xmm3,0x8(%rsp)
  movss  D31(%rip),%xmm4
  movss  %xmm4,0x4(%rsp)
  jmp    L2
L107:
  cvtss2sd %xmm0,%xmm0
  cvtss2sd %xmm1,%xmm1
  mov    %r12d,%r8d
  mov    %ebp,%ecx
  mov    %ebx,%edx
  mov    %r13,%rsi
  mov    0x48(%rsp),%rdi
  mov    $0x2,%eax
  call   <bioR1_3dskip@plt>
  jmp    L100
```

tool_calls: name: parse_data
arguments: data_label: D133
type_guessed: byte[4]
name: parse_data
arguments: data_label: D125
type_guessed: f32
name: parse_data
arguments: data_label: D137
type_guessed: byte[4]
name: parse_data
arguments: data_label: D95
type_guessed: byte[4]
name: parse_data
arguments: data_label: D15
type_guessed: f64
name: parse_data
arguments: data_label: D47
type_guessed: byte[4]
name: parse_data
arguments: data_label: D60
type_guessed: byte[4]
name: parse_data
arguments: data_label: D131
type_guessed: byte[4]
name: parse_data
arguments: data_label: D135
type_guessed: byte[4]
name: parse_data
arguments: data_label: D31
type_guessed: byte[4]

tool: {"D133": [0x76,0x06,0x62,0xbf]}

tool: D125: 1

tool: {"D137": [0x7d,0xa6,0x57,0xc1]}

tool: {"D95": [0x1e,0xf3,0x97,0xbd]}

tool: D15: 0.763

tool: {"D47": [0x55,0x13,0xe3,0xbe]}

tool: {"D60": [0x0e,0x71,0x23,0x40]}

tool: {"D131": [0x73,0x06,0xab,0xc1]}

tool: {"D135": [0x6c,0x66,0x3e,0x41]}

tool: {"D31": [0x11,0x66,0x21,0x3f]}

assistant: ```c
void bioR9_3d(HHH, HHL, HLH, HLL, LHH, LHL, LLH, LLL, outvector, xlength, ylength, zlength, ifnotAllskip) float *HLL, *HLH, *HHL, *HHH;
float *LLL, *LLH, *LHL, *LHH;
float *outvector;
int xlength, ylength;
int ifnotAllskip;
{
  float ix0 = 1.586134342059;
  float ix1 = 0.052980118573;
  float ix2 = -0.882911075529;
  float ix3 = -0.443506852045;
  float iX0, iX1, iX2, iX3, iX4;
  int pairity;
  float Norm;
  int dim;
  dim = (xlength > 1) + (ylength > 1) + (zlength > 1);
  if (ifnotAllskip) {
    iX4 = ix3;
    iX3 = 1.0 / (ix3 * ix2);
    iX2 = 1.0 / (ix2 * ix1);
    iX1 = 1.0 / (ix1 * ix0);
    iX0 = 1.0 / ix0;
  } else {
    iX4 = ix2;
    iX3 = 1.0;
    iX2 = 1.0 / (ix2 * ix1);
    iX1 = 1.0 / (ix1 * ix0);
    iX0 = 1.0 / ix0;
  }
  if (dim == 3)
    Norm = 1.0 / (ix0 * ix1 * ix2);
  if (dim == 2)
    Norm = 1.0;
  if (dim == 1)
    Norm = (ix0 * ix1 * ix2);
  if (xlength > 1)
    Norm *= (0.763);
  if (ylength > 1)
    Norm *= (0.763);
  if (zlength > 1)
    Norm *= (0.763);
  if (dim == 0) {
    Norm = 1.0;
    iX0 = 1.0;
    iX1 = 1.0;
    iX2 = 1.0;
    iX3 = 1.0;
    iX4 = 1.0;
  }
  if (ifnotAllskip) {
    bioR1__3d(HHH, HHL, HLH, HLL, LHH, LHL, LLH, LLL, outvector, xlength, ylength, zlength, iX4, Norm);
    pairity = 0;
    bio_3d_postmult(outvector, xlength, ylength, zlength, iX3, pairity);
  } else
    bioR1_3dskip(LLL, outvector, xlength, ylength, zlength, iX4, Norm);
  pairity = 1;
  bio_3d_postmult(outvector, xlength, ylength, zlength, iX2, pairity);
  pairity = 0;
  bio_3d_postmult(outvector, xlength, ylength, zlength, iX1, pairity);
  pairity = 1;
  bio_3d_postmult(outvector, xlength, ylength, zlength, iX0, pairity);
}
```