user: 这段汇编代码用C语言表示是什么样的：

```asm
<AdjustScaling>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x40,%rsp
  movsd  %xmm0,-0x8(%rbp)
  movsd  %xmm1,-0x10(%rbp)
  movsd  %xmm2,-0x18(%rbp)
  movsd  %xmm3,-0x20(%rbp)
  movsd  %xmm4,-0x28(%rbp)
  mov    %rdi,-0x30(%rbp)
  mov    %rsi,-0x38(%rbp)
  movsd  -0x28(%rbp),%xmm1
  movsd  -0x10(%rbp),%xmm0
  mov    -0x8(%rbp),%rax
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D49(%rip),%rax
  mov    %rax,%rsi
  mov    $0x5,%edi
  mov    $0x3,%eax
  call   <diagnostics@plt>
  movsd  -0x20(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D55(%rip),%rax
  mov    %rax,%rsi
  mov    $0x5,%edi
  mov    $0x2,%eax
  call   <diagnostics@plt>
  pxor   %xmm0,%xmm0
  ucomisd -0x18(%rbp),%xmm0
  jp     L97
  pxor   %xmm0,%xmm0
  ucomisd -0x18(%rbp),%xmm0
  je     L77
L97:
  pxor   %xmm0,%xmm0
  ucomisd -0x8(%rbp),%xmm0
  jp     L117
  pxor   %xmm0,%xmm0
  ucomisd -0x8(%rbp),%xmm0
  je     L77
L117:
  movsd  -0x18(%rbp),%xmm1
  movsd  D22(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  divsd  -0x8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <my_rint@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  mov    -0x38(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L100
L77:
  movsd  -0x28(%rbp),%xmm1
  movsd  D22(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <my_rint@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  mov    -0x38(%rbp),%rax
  movsd  %xmm0,(%rax)
L100:
  pxor   %xmm0,%xmm0
  ucomisd -0x20(%rbp),%xmm0
  jp     L113
  pxor   %xmm0,%xmm0
  ucomisd -0x20(%rbp),%xmm0
  je     L17
L113:
  pxor   %xmm0,%xmm0
  ucomisd -0x10(%rbp),%xmm0
  jp     L84
  pxor   %xmm0,%xmm0
  ucomisd -0x10(%rbp),%xmm0
  jne    L84
L17:
  mov    -0x38(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x30(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L123
L84:
  movsd  -0x20(%rbp),%xmm1
  movsd  D22(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  divsd  -0x10(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <my_rint@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  mov    -0x30(%rbp),%rax
  movsd  %xmm0,(%rax)
L123:
  pxor   %xmm0,%xmm0
  ucomisd -0x18(%rbp),%xmm0
  jp     L55
  pxor   %xmm0,%xmm0
  ucomisd -0x18(%rbp),%xmm0
  jne    L55
  pxor   %xmm0,%xmm0
  ucomisd -0x20(%rbp),%xmm0
  jp     L40
  pxor   %xmm0,%xmm0
  ucomisd -0x20(%rbp),%xmm0
  je     L55
L40:
  mov    -0x30(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x38(%rbp),%rax
  movsd  %xmm0,(%rax)
L55:
  mov    -0x38(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x30(%rbp),%rax
  mov    (%rax),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D43(%rip),%rax
  mov    %rax,%rsi
  mov    $0x5,%edi
  mov    $0x2,%eax
  call   <diagnostics@plt>
  nop
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D49
type: string
name: extract_symbolic_data
arguments: label: D55
type: string
name: extract_symbolic_data
arguments: label: D22
type: f64
name: extract_symbolic_data
arguments: label: D43
type: string

tool: D49: AdjustScaling h       =%f w       =%f s=%f

tool: D55: AdjustScaling target_h=%f target_w=%f

tool: D22: 100

tool: D43: AdjustScaling xscale=%d yscale=%d

assistant: ```c
void AdjustScaling(double h, double w, double target_h, double target_w, double s, uint16_t *sx, uint16_t *sy) {
  diagnostics(5, "AdjustScaling h       =%f w       =%f s=%f", h, w, s);
  diagnostics(5, "AdjustScaling target_h=%f target_w=%f", target_h, target_w);
  if (target_h != 0 && h != 0)
    *sy = (uint16_t)my_rint(100.0 * target_h / h);
  else
    *sy = (uint16_t)my_rint(s * 100);
  if (target_w == 0 || w == 0)
    *sx = *sy;
  else
    *sx = (uint16_t)my_rint(100.0 * target_w / w);
  if (target_h == 0 && target_w != 0)
    *sy = *sx;
  diagnostics(5, "AdjustScaling xscale=%d yscale=%d", *sx, *sy);
}
```