user: 下面的汇编指令对应的C源代码是什么:

```asm
<pr_time>:
  endbr64
  push   %rbp
  lea    D130(%rip),%rdi
  xor    %eax,%eax
  push   %rbx
  sub    $0x28,%rsp
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  xor    %edi,%edi
  test   %eax,%eax
  mov    %eax,%ebp
  setg   %dil
  call   <assert@plt>
  movsd  0x8(%rsp),%xmm0
  comisd D65(%rip),%xmm0
  jae    L78
  movsd  D105(%rip),%xmm7
  comisd %xmm7,%xmm0
  movsd  %xmm7,0x8(%rsp)
  jae    L85
  call   <round@plt>
  lea    D158(%rip),%rdi
  mov    %eax,%esi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %eax,%ebx
L2:
  xor    %edi,%edi
  test   %ebx,%ebx
  setg   %dil
  call   <assert@plt>
  add    $0x28,%rsp
  lea    (%rbx,%rbp,1),%eax
  pop    %rbx
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L85:
  movsd  D119(%rip),%xmm3
  movsd  D94(%rip),%xmm4
  movapd %xmm0,%xmm1
  divsd  0x8(%rsp),%xmm1
  movapd %xmm1,%xmm2
  andpd  %xmm3,%xmm2
  ucomisd %xmm2,%xmm4
  ja     L10
L76:
  cvttsd2si %xmm1,%esi
  lea    D144(%rip),%rdi
  xor    %eax,%eax
  movsd  %xmm0,0x18(%rsp)
  movsd  %xmm1,0x10(%rsp)
  call   <printf@plt>
  movsd  0x18(%rsp),%xmm0
  mov    %eax,%ebx
L0:
  xor    %edi,%edi
  test   %ebx,%ebx
  movsd  %xmm0,0x18(%rsp)
  setg   %dil
  add    %ebx,%ebp
  call   <assert@plt>
  movsd  0x10(%rsp),%xmm1
  mulsd  0x8(%rsp),%xmm1
  movsd  0x18(%rsp),%xmm0
  subsd  %xmm1,%xmm0
  call   <round@plt>
  lea    D2(%rip),%rdi
  mov    %eax,%esi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %eax,%ebx
  jmp    L2
  nopl   0x0(%rax)
L78:
  movq   D119(%rip),%xmm2
  movsd  D94(%rip),%xmm6
  movapd %xmm0,%xmm1
  divsd  D65(%rip),%xmm1
  movapd %xmm1,%xmm3
  andpd  %xmm2,%xmm3
  movapd %xmm2,%xmm4
  ucomisd %xmm3,%xmm6
  ja     L39
L56:
  cvttsd2si %xmm1,%esi
  lea    D144(%rip),%rdi
  xor    %eax,%eax
  movsd  %xmm0,0x10(%rsp)
  movsd  %xmm1,0x8(%rsp)
  call   <printf@plt>
  xor    %edi,%edi
  test   %eax,%eax
  mov    %eax,%ebx
  setg   %dil
  add    %ebx,%ebp
  call   <assert@plt>
  movsd  0x8(%rsp),%xmm1
  mulsd  D65(%rip),%xmm1
  movsd  0x10(%rsp),%xmm0
  movsd  D105(%rip),%xmm5
  movq   D119(%rip),%xmm2
  movsd  D94(%rip),%xmm6
  movsd  %xmm5,0x8(%rsp)
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  divsd  %xmm5,%xmm1
  movapd %xmm1,%xmm3
  andpd  %xmm2,%xmm3
  ucomisd %xmm3,%xmm6
  ja     L61
L8:
  cvttsd2si %xmm1,%esi
  lea    D20(%rip),%rdi
  xor    %eax,%eax
  movsd  %xmm0,0x18(%rsp)
  movsd  %xmm1,0x10(%rsp)
  call   <printf@plt>
  movsd  0x18(%rsp),%xmm0
  mov    %eax,%ebx
  jmp    L0
L61:
  cvttsd2si %xmm1,%rax
  pxor   %xmm3,%xmm3
  movsd  D25(%rip),%xmm5
  andnpd %xmm1,%xmm2
  cvtsi2sd %rax,%xmm3
  movapd %xmm3,%xmm4
  cmpnlesd %xmm1,%xmm4
  andpd  %xmm5,%xmm4
  subsd  %xmm4,%xmm3
  orpd   %xmm2,%xmm3
  movapd %xmm3,%xmm1
  jmp    L8
  nopl   (%rax)
L39:
  cvttsd2si %xmm1,%rax
  pxor   %xmm3,%xmm3
  movsd  D25(%rip),%xmm6
  andnpd %xmm1,%xmm4
  cvtsi2sd %rax,%xmm3
  movapd %xmm3,%xmm5
  cmpnlesd %xmm1,%xmm5
  andpd  %xmm6,%xmm5
  subsd  %xmm5,%xmm3
  orpd   %xmm4,%xmm3
  movapd %xmm3,%xmm1
  jmp    L56
L10:
  cvttsd2si %xmm1,%rax
  pxor   %xmm2,%xmm2
  movsd  D25(%rip),%xmm5
  andnpd %xmm1,%xmm3
  cvtsi2sd %rax,%xmm2
  movapd %xmm2,%xmm4
  cmpnlesd %xmm1,%xmm4
  andpd  %xmm5,%xmm4
  subsd  %xmm4,%xmm2
  orpd   %xmm3,%xmm2
  movapd %xmm2,%xmm1
  jmp    L76
```

tool_calls: name: parse_data
arguments: data_label: D130
type_infered: string
name: parse_data
arguments: data_label: D65
type_infered: f64[2]
name: parse_data
arguments: data_label: D105
type_infered: f64
name: parse_data
arguments: data_label: D158
type_infered: string
name: parse_data
arguments: data_label: D119
type_infered: byte[8]
name: parse_data
arguments: data_label: D94
type_infered: byte[8]
name: parse_data
arguments: data_label: D144
type_infered: string
name: parse_data
arguments: data_label: D2
type_infered: string
name: parse_data
arguments: data_label: D20
type_infered: string
name: parse_data
arguments: data_label: D25
type_infered: byte[8]

tool: D130:  -- 

tool: {"D65": [3600.0,4503599627370496.0]}

tool: D105: 60

tool: D158: %is

tool: {"D119": [0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f]}

tool: {"D94": [0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x43]}

tool: D144: %i:

tool: D2: %02i

tool: D20: %02i:

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

assistant: ```c
int pr_time(double sec) {
  int has_h, has_m;
  int c, tot;
  tot = printf(" -- ");
  assert(tot > 0);
  has_h = sec >= 3600;
  if (has_h) {
    double h = floor(sec / 3600);
    c = printf("%i:", (int)h);
    assert(c > 0);
    tot += c;
    sec -= h * 3600;
  }
  has_m = has_h || sec >= 60;
  if (has_m) {
    double m = floor(sec / 60);
    if (has_h)
      c = printf("%02i:", (int)m);
    else
      c = printf("%i:", (int)m);
    assert(c > 0);
    tot += c;
    sec -= m * 60;
  }
  if (has_m)
    c = printf("%02i", (int)round(sec));
  else
    c = printf("%is", (int)round(sec));
  assert(c > 0);
  return tot + c;
}
```