user: What would the C source look like for the assembly code provided here:

```asm
<set_timestep_interval>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x38(%rbp)
  mov    %esi,-0x3c(%rbp)
  mov    %edx,-0x40(%rbp)
  movsd  %xmm0,-0x48(%rbp)
  movsd  %xmm1,-0x50(%rbp)
  mov    %rcx,-0x58(%rbp)
  mov    %r8,-0x60(%rbp)
  movsd  %xmm2,-0x68(%rbp)
  movsd  %xmm3,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  comisd D91(%rip),%xmm0
  jae    L30
  jmp    L96
L30:
  movsd  D91(%rip),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D91(%rip),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movl   $0x0,-0x30(%rbp)
  jmp    L188
L183:
  movl   $0x1,-0x2c(%rbp)
  jmp    L176
L155:
  mov    -0x30(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D36(%rip),%xmm1
  andpd  %xmm1,%xmm0
  comisd -0x28(%rbp),%xmm0
  jbe    L41
  mov    -0x30(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D36(%rip),%xmm1
  andpd  %xmm1,%xmm0
  jmp    L151
L41:
  movsd  -0x28(%rbp),%xmm0
L151:
  movsd  %xmm0,-0x28(%rbp)
  addl   $0x1,-0x2c(%rbp)
L176:
  mov    -0x40(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x2c(%rbp)
  jle    L155
  addl   $0x1,-0x30(%rbp)
L188:
  mov    -0x3c(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x30(%rbp)
  jle    L183
  movl   $0x1,-0x30(%rbp)
  jmp    L192
L161:
  movl   $0x0,-0x2c(%rbp)
  jmp    L6
L19:
  mov    -0x30(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x60(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D36(%rip),%xmm1
  andpd  %xmm1,%xmm0
  comisd -0x20(%rbp),%xmm0
  jbe    L88
  mov    -0x30(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x60(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D36(%rip),%xmm1
  andpd  %xmm1,%xmm0
  jmp    L10
L88:
  movsd  -0x20(%rbp),%xmm0
L10:
  movsd  %xmm0,-0x20(%rbp)
  addl   $0x1,-0x2c(%rbp)
L6:
  mov    -0x40(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x2c(%rbp)
  jle    L19
  addl   $0x1,-0x30(%rbp)
L192:
  mov    -0x3c(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x30(%rbp)
  jle    L161
  movsd  -0x48(%rbp),%xmm0
  divsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x50(%rbp),%xmm0
  divsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x48(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  movsd  D44(%rip),%xmm0
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  movsd  D44(%rip),%xmm0
  divsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  D44(%rip),%xmm0
  divsd  %xmm1,%xmm0
  mulsd  -0x68(%rbp),%xmm0
  movsd  D62(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x10(%rbp),%xmm0
  comisd -0x18(%rbp),%xmm0
  jbe    L137
  movsd  -0x8(%rbp),%xmm0
  comisd -0x18(%rbp),%xmm0
  jbe    L115
  movsd  -0x18(%rbp),%xmm0
  jmp    L141
L115:
  movsd  -0x8(%rbp),%xmm0
L141:
  mov    -0x38(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L128
L137:
  movsd  -0x8(%rbp),%xmm0
  comisd -0x10(%rbp),%xmm0
  jbe    L77
  movsd  -0x10(%rbp),%xmm0
  jmp    L7
L77:
  movsd  -0x8(%rbp),%xmm0
L7:
  mov    -0x38(%rbp),%rax
  movsd  %xmm0,(%rax)
L128:
  mov    -0x38(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  mov    -0x38(%rbp),%rax
  movsd  %xmm0,(%rax)
L96:
  nop
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: label: D91
type_infered: byte[16]
name: disassemble_data
arguments: label: D36
type_infered: qword
name: disassemble_data
arguments: label: D44
type_infered: byte[8]
name: disassemble_data
arguments: label: D62
type_infered: f64

tool: {"D91": [0xbb,0xbd,0xd7,0xd9,0xdf,0x7c,0xdb,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: D36: 9223372036854775807

tool: {"D44": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f]}

tool: D62: 2

assistant: ```c
void set_timestep_interval(double *del_t, int imax, int jmax, double delx, double dely, double **u, double **v, double Re, double tau) {
  int i, j;
  double umax, vmax, deltu, deltv, deltRe;
  if (tau >= 1.0e-10) {
    umax = 1.0e-10;
    vmax = 1.0e-10;
    for (i = 0; i <= imax + 1; i++) {
      for (j = 1; j <= jmax + 1; j++) {
        umax = ((fabs(u[i][j])) > (umax) ? (fabs(u[i][j])) : (umax));
      }
    }
    for (i = 1; i <= imax + 1; i++) {
      for (j = 0; j <= jmax + 1; j++) {
        vmax = ((fabs(v[i][j])) > (vmax) ? (fabs(v[i][j])) : (vmax));
      }
    }
    deltu = delx / umax;
    deltv = dely / vmax;
    deltRe = 1 / (1 / (delx * delx) + 1 / (dely * dely)) * Re / 2.0;
    if (deltu < deltv) {
      *del_t = ((deltu) < (deltRe) ? (deltu) : (deltRe));
    } else {
      *del_t = ((deltv) < (deltRe) ? (deltv) : (deltRe));
    }
    *del_t = tau * (*del_t);
  }
}
```