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

```asm
<SHT1x_Calc>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x38(%rbp)
  mov    %rsi,-0x40(%rbp)
  movss  D103(%rip),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  D26(%rip),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  D83(%rip),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  D24(%rip),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  D71(%rip),%xmm0
  movss  %xmm0,-0x14(%rbp)
  mov    -0x38(%rbp),%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x10(%rbp)
  mov    -0x40(%rbp),%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0xc(%rbp)
  pxor   %xmm1,%xmm1
  cvtss2sd -0xc(%rbp),%xmm1
  movsd  D16(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  D93(%rip),%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0x1c(%rbp),%xmm0
  mulss  -0x10(%rbp),%xmm0
  movaps %xmm0,%xmm1
  mulss  -0x10(%rbp),%xmm1
  movss  -0x20(%rbp),%xmm0
  mulss  -0x10(%rbp),%xmm0
  addss  %xmm1,%xmm0
  movss  -0x24(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  movss  -0x8(%rbp),%xmm0
  movss  D3(%rip),%xmm2
  movaps %xmm0,%xmm1
  subss  %xmm2,%xmm1
  movss  -0x14(%rbp),%xmm0
  mulss  -0x10(%rbp),%xmm0
  addss  -0x18(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x4(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  -0x28(%rbp),%xmm0
  comiss D6(%rip),%xmm0
  jbe    L0
  movss  D6(%rip),%xmm0
  movss  %xmm0,-0x28(%rbp)
L0:
  pxor   %xmm1,%xmm1
  cvtss2sd -0x28(%rbp),%xmm1
  movsd  D75(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L16
  movss  D42(%rip),%xmm0
  movss  %xmm0,-0x28(%rbp)
L16:
  mov    -0x40(%rbp),%rax
  movss  -0x8(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%rax
  movss  -0x28(%rbp),%xmm0
  movss  %xmm0,(%rax)
  nop
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D103
data_type: byte[4]
name: parse_data
arguments: data_tag: D26
data_type: f32
name: parse_data
arguments: data_tag: D83
data_type: byte[4]
name: parse_data
arguments: data_tag: D24
data_type: f32
name: parse_data
arguments: data_tag: D71
data_type: f32
name: parse_data
arguments: data_tag: D16
data_type: byte[8]
name: parse_data
arguments: data_tag: D93
data_type: f64
name: parse_data
arguments: data_tag: D3
data_type: byte[4]
name: parse_data
arguments: data_tag: D6
data_type: byte[4]
name: parse_data
arguments: data_tag: D75
data_type: f64
name: parse_data
arguments: data_tag: D42
data_type: byte[4]

tool: {"D103": [0x00,0x00,0x80,0xc0]}

tool: D26: 0.0405

tool: {"D83": [0xa2,0xe7,0x3b,0xb6]}

tool: D24: 0.01

tool: D71: 8e-05

tool: {"D16": [0x7b,0x14,0xae,0x47,0xe1,0x7a,0x84,0x3f]}

tool: D93: 39.65

tool: {"D3": [0x00,0x00,0xc8,0x41]}

tool: {"D6": [0x00,0x00,0xc8,0x42]}

tool: D75: 0.1

tool: {"D42": [0xcd,0xcc,0xcc,0x3d]}

assistant: ```c
void SHT1x_Calc(float *p_humidity, float *p_temperature) {
  const float C1 = -4.0;
  const float C2 = +0.0405;
  const float C3 = -0.0000028;
  const float T1 = +0.01;
  const float T2 = +0.00008;
  float rh = *p_humidity;
  float t = *p_temperature;
  float rh_lin;
  float rh_true;
  float t_C;
  t_C = t * 0.01 - 39.65;
  rh_lin = C3 * rh * rh + C2 * rh + C1;
  rh_true = (t_C - 25) * (T1 + T2 * rh) + rh_lin;
  if (rh_true > 100)
    rh_true = 100;
  if (rh_true < 0.1)
    rh_true = 0.1;
  *p_temperature = t_C;
  *p_humidity = rh_true;
}
```