user: Converte this assembly snippet into its equivalent C code:

```asm
<par_monitor>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  movslq %edi,%r11
  lea    0x0(,%r11,4),%r10
  lea    (%rdx,%r10,1),%rbx
  movslq %esi,%rsi
  lea    (%r9,%rsi,8),%rdx
  lea    (%r8,%r10,1),%rbp
  pxor   %xmm0,%xmm0
  cvtss2sd (%rbx),%xmm0
  addsd  (%rdx),%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x0(%rbp)
  lea    0x2(%rdi),%esi
  movslq %esi,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %esi,%r9d
  sar    $0x1f,%r9d
  sub    %r9d,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%esi
  je     L380
  lea    0x7(%rdi),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%ecx
  je     L410
  lea    0x6(%rdi),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%ecx
  je     L232
  lea    0x5(%rdi),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%ecx
  je     L98
  lea    0x9(%rdi),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%ecx
  je     L487
  lea    0x8(%rdi),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%ecx
  je     L487
  lea    0x1(%rdi),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%ecx
  je     L397
  movslq %edi,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %edi,%edx
  sar    $0x1f,%edx
  sub    %edx,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%edi
  je     L356
  lea    0x3(%rdi),%edx
  movslq %edx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %edx,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%edx
  je     L199
  lea    0x4(%rdi),%edx
  movslq %edx,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %edx,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%edx
  jne    L3
  pxor   %xmm0,%xmm0
  comiss (%rbx),%xmm0
  jbe    L114
  movl   $0x3c23d70a,(%rbx)
  add    $0x4,%edi
  movslq %edi,%rax
  imul   $0x66666667,%rax,%rax
  sar    $0x22,%rax
  mov    %edi,%edx
  sar    $0x1f,%edx
  sub    %edx,%eax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  cmp    %eax,%edi
  je     L114
  jmp    L3
L380:
  comiss D100(%rip),%xmm0
  jbe    L333
  movss  D9(%rip),%xmm1
  comiss %xmm0,%xmm1
  jbe    L333
  lea    0x4(%r10),%rax
  cmpl   $0x1,0x4(%rcx,%r10,1)
  je     L478
L482:
  cmpl   $0x1,(%rcx,%r11,4)
  je     L140
L177:
  lea    -0x10(%r10),%rax
  cmpl   $0x1,-0x10(%rcx,%r10,1)
  jne    L304
  add    %rax,%r8
  movss  (%r8),%xmm0
  divss  0x0(%rbp),%xmm0
  movss  %xmm0,(%r8)
  jmp    L304
L478:
  add    %r8,%rax
  movss  D24(%rip),%xmm0
  addss  (%rax),%xmm0
  movss  %xmm0,(%rax)
  jmp    L482
L140:
  movss  D100(%rip),%xmm0
  divss  0x0(%rbp),%xmm0
  movss  %xmm0,0x0(%rbp)
  jmp    L177
L333:
  comiss D9(%rip),%xmm0
  jbe    L304
  movss  (%rbx),%xmm0
  movss  %xmm0,0x0(%rbp)
L304:
  movss  0x0(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm0,%xmm1
  jae    L322
  movss  (%rbx),%xmm1
  divss  %xmm0,%xmm1
  comiss D9(%rip),%xmm1
  jb     L433
L322:
  movss  (%rbx),%xmm0
  divss  D9(%rip),%xmm0
  movss  %xmm0,0x0(%rbp)
L433:
  pxor   %xmm0,%xmm0
  cvtss2sd 0x0(%rbp),%xmm0
  movsd  D167(%rip),%xmm1
  comisd %xmm0,%xmm1
  jb     L3
  movl   $0x3dcccccd,0x0(%rbp)
L3:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
L410:
  movss  (%rbx),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  comiss D9(%rip),%xmm2
  jb     L486
  addss  D9(%rip),%xmm1
  movss  %xmm1,0x0(%rbp)
L118:
  movss  0x0(%rbp),%xmm0
  comiss D92(%rip),%xmm0
  jb     L407
  movl   $0x42480000,0x0(%rbp)
  jmp    L3
L486:
  movaps %xmm1,%xmm2
  subss  %xmm0,%xmm2
  comiss D9(%rip),%xmm2
  jb     L118
  subss  D9(%rip),%xmm1
  movss  %xmm1,0x0(%rbp)
  jmp    L118
L407:
  movss  D46(%rip),%xmm1
  comiss %xmm0,%xmm1
  jb     L3
  movl   $0xc2480000,0x0(%rbp)
  jmp    L3
L232:
  pxor   %xmm0,%xmm0
  cvtss2sd (%rbx),%xmm0
  movsd  D167(%rip),%xmm1
  comisd %xmm0,%xmm1
  jb     L3
  movl   $0x3dcccccd,(%rbx)
  jmp    L3
L98:
  divss  (%rbx),%xmm0
  cvtss2sd %xmm0,%xmm0
  call   <fabs@plt>
  cmp    $0x9,%eax
  jle    L519
  movss  D9(%rip),%xmm0
  mulss  (%rbx),%xmm0
  movss  %xmm0,0x0(%rbp)
L255:
  movss  0x0(%rbp),%xmm0
  comiss D151(%rip),%xmm0
  jbe    L200
  movl   $0x41a00000,0x0(%rbp)
  jmp    L3
L519:
  movss  0x0(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm0,%xmm1
  jae    L261
  movss  (%rbx),%xmm1
  divss  %xmm0,%xmm1
  comiss D9(%rip),%xmm1
  jb     L255
L261:
  movss  (%rbx),%xmm0
  divss  D9(%rip),%xmm0
  movss  %xmm0,0x0(%rbp)
  jmp    L255
L200:
  cvtss2sd %xmm0,%xmm0
  movsd  D82(%rip),%xmm1
  comisd %xmm0,%xmm1
  jbe    L3
  movl   $0x3c23d70a,0x0(%rbp)
  jmp    L3
L487:
  movss  (%rbx),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  comiss D9(%rip),%xmm2
  jb     L317
  addss  D9(%rip),%xmm1
  movss  %xmm1,0x0(%rbp)
  jmp    L3
L317:
  movaps %xmm1,%xmm2
  subss  %xmm0,%xmm2
  comiss D9(%rip),%xmm2
  jb     L3
  subss  D9(%rip),%xmm1
  movss  %xmm1,0x0(%rbp)
  jmp    L3
L397:
  movsd  (%rdx),%xmm0
  call   <fabs@plt>
  cmp    $0x1f3,%eax
  jle    L3
  movss  (%rbx),%xmm0
  movss  %xmm0,0x0(%rbp)
  jmp    L3
L356:
  movss  D128(%rip),%xmm1
  comiss %xmm0,%xmm1
  jb     L3
  movl   $0xbffeb852,0x0(%rbp)
  jmp    L3
L199:
  pxor   %xmm0,%xmm0
  comiss (%rbx),%xmm0
  ja     L258
L114:
  pxor   %xmm0,%xmm0
  comiss 0x0(%rbp),%xmm0
  jb     L3
  movl   $0x3c23d70a,0x0(%rbp)
  jmp    L3
L258:
  movl   $0x3c23d70a,(%rbx)
  jmp    L114
```

tool_calls: name: extract_symbolic_data
arguments: tag: D100
datatype: f32
name: extract_symbolic_data
arguments: tag: D9
datatype: f32
name: extract_symbolic_data
arguments: tag: D24
datatype: f32
name: extract_symbolic_data
arguments: tag: D167
datatype: f64
name: extract_symbolic_data
arguments: tag: D92
datatype: f32
name: extract_symbolic_data
arguments: tag: D46
datatype: byte[4]
name: extract_symbolic_data
arguments: tag: D151
datatype: f32
name: extract_symbolic_data
arguments: tag: D82
datatype: f64
name: extract_symbolic_data
arguments: tag: D128
datatype: byte[4]

tool: D100: 1

tool: D9: 10

tool: D24: 90

tool: D167: 0.1

tool: D92: 50

tool: {"D46": [0x00,0x00,0x48,0xc2]}

tool: D151: 20

tool: D82: 0.01

tool: {"D128": [0x00,0x00,0x00,0xc0]}

assistant: ```c
void par_monitor(int l, int j, float a[], int ia[], float atry[], double da[]) {
  extern int (*pfunc)(const char *, ...);
  extern char device[];
  atry[l] = a[l] + da[j];
  if ((l + 2) % 10 == 0) {
    if (atry[l] > 1. && atry[l] < 10.) {
      if (ia[l + 1] == 1)
        atry[l + 1] = atry[l + 1] + 90.;
      if (ia[l] == 1)
        atry[l] = 1. / atry[l];
      if (ia[l - 4] == 1)
        atry[l - 4] = atry[l - 4] / atry[l];
    } else if (atry[l] > 10.)
      atry[l] = a[l];
    if (atry[l] <= 0. || a[l] / atry[l] >= 10.)
      atry[l] = a[l] / 10.;
    if (atry[l] <= 0.1)
      atry[l] = 0.1;
    return;
  };
  if ((l + 7) % 10 == 0) {
    if (atry[l] - a[l] >= 10.)
      atry[l] = a[l] + 10.;
    else if (a[l] - atry[l] >= 10.)
      atry[l] = a[l] - 10.;
    if (atry[l] >= 50.)
      atry[l] = 50.;
    else if (atry[l] <= -50.)
      atry[l] = -50.;
    return;
  };
  if ((l + 6) % 10 == 0) {
    if (a[l] <= 0.1)
      a[l] = 0.1;
    return;
  };
  if ((l + 5) % 10 == 0) {
    if (fabs(atry[l] / a[l]) >= 10.)
      atry[l] = a[l] * 10.;
    else if (atry[l] <= 0. || a[l] / atry[l] >= 10.)
      atry[l] = a[l] / 10.;
    if (atry[l] > 20.)
      atry[l] = 20.;
    else if (atry[l] < 0.01)
      atry[l] = 0.01;
    return;
  };
  if ((l + 9) % 10 == 0 || (l + 8) % 10 == 0) {
    if (atry[l] - a[l] >= 10.)
      atry[l] = a[l] + 10.;
    else if (a[l] - atry[l] >= 10.)
      atry[l] = a[l] - 10.;
    return;
  };
  if ((l + 1) % 10 == 0) {
    if (fabs(da[j]) >= 500.)
      atry[l] = a[l];
    return;
  };
  if (l % 10 == 0) {
    if (atry[l] <= -2.0)
      atry[l] = -1.99;
    return;
  };
  if (((l + 3) % 10 == 0 || (l + 4) % 10 == 0) && a[l] < 0.)
    a[l] = 0.01;
  if (((l + 3) % 10 == 0 || (l + 4) % 10 == 0) && atry[l] <= 0.) {
    atry[l] = 0.01;
  }
  return;
}
```