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

```asm
<main>:
  endbr64
  push   %rbp
  xor    %eax,%eax
  call   <makeQNaN32@plt>
  mov    $0x7e00,%edi
  mov    %eax,%ebp
  xor    %eax,%eax
  call   <UINT16_C@plt>
  mov    %ebp,%esi
  mov    %eax,%edi
  xor    %eax,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  je     L46
L20:
  mov    $0x1,%eax
  pop    %rbp
  ret
L46:
  mov    $0x8000,%edi
  xor    %eax,%eax
  call   <UINT32_C@plt>
  mov    %eax,%edi
  xor    %eax,%eax
  call   <makeNaN32@plt>
  mov    $0x7e00,%edi
  mov    %eax,%ebp
  xor    %eax,%eax
  call   <UINT16_C@plt>
  mov    %ebp,%esi
  mov    %eax,%edi
  xor    %eax,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  call   <makeInf32@plt>
  mov    $0x7c00,%edi
  mov    %eax,%ebp
  xor    %eax,%eax
  call   <UINT16_C@plt>
  mov    %ebp,%esi
  mov    %eax,%edi
  xor    %eax,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  call   <makeInf32@plt>
  mov    $0xfc00,%edi
  mov    %eax,%ebp
  xor    %eax,%eax
  call   <UINT16_C@plt>
  mov    %ebp,%esi
  mov    %eax,%edi
  neg    %esi
  xor    %eax,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  xor    %edi,%edi
  call   <UINT16_C@plt>
  pxor   %xmm0,%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x8000,%edi
  call   <UINT16_C@plt>
  movsd  D126(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x4248,%edi
  call   <UINT16_C@plt>
  movsd  D22(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0xc248,%edi
  call   <UINT16_C@plt>
  movsd  D139(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x7c00,%edi
  call   <UINT16_C@plt>
  movsd  D101(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x6e62,%edi
  call   <UINT16_C@plt>
  movsd  D147(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x3c00,%edi
  call   <UINT16_C@plt>
  movsd  D16(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x400,%edi
  call   <UINT16_C@plt>
  movsd  D10(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x10,%edi
  call   <UINT16_C@plt>
  movsd  D20(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x1,%edi
  call   <UINT16_C@plt>
  movsd  D79(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x8001,%edi
  call   <UINT16_C@plt>
  movsd  D81(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x1,%edi
  call   <UINT16_C@plt>
  movsd  D118(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  xor    %edi,%edi
  call   <UINT16_C@plt>
  movsd  D93(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x8000,%edi
  call   <UINT16_C@plt>
  movsd  D27(%rip),%xmm0
  mov    %eax,%edi
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x7bff,%edi
  call   <UINT16_C@plt>
  mov    %eax,%edi
  mov    D61(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  mov    $0x7bff,%edi
  call   <UINT16_C@plt>
  mov    %eax,%edi
  mov    D61(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  call   <makeInf32@plt>
  mov    $0x7c00,%edi
  mov    %eax,%ebp
  xor    %eax,%eax
  call   <UINT16_C@plt>
  mov    %ebp,%esi
  mov    %eax,%edi
  xor    %eax,%eax
  call   <test__extendhfsf2@plt>
  test   %eax,%eax
  jne    L20
  call   <makeInf32@plt>
  mov    $0xfc00,%edi
  mov    %eax,%ebp
  xor    %eax,%eax
  call   <UINT16_C@plt>
  mov    %ebp,%esi
  mov    %eax,%edi
  neg    %esi
  xor    %eax,%eax
  call   <test__extendhfsf2@plt>
  pop    %rbp
  test   %eax,%eax
  setne  %al
  movzbl %al,%eax
  ret
```

tool_calls: name: disassemble_data
arguments: label: D126
data_type: byte[8]
name: disassemble_data
arguments: label: D22
data_type: byte[8]
name: disassemble_data
arguments: label: D139
data_type: byte[8]
name: disassemble_data
arguments: label: D101
data_type: byte[8]
name: disassemble_data
arguments: label: D147
data_type: byte[8]
name: disassemble_data
arguments: label: D16
data_type: f64
name: disassemble_data
arguments: label: D10
data_type: f64
name: disassemble_data
arguments: label: D20
data_type: f64
name: disassemble_data
arguments: label: D79
data_type: f64
name: disassemble_data
arguments: label: D81
data_type: byte[8]
name: disassemble_data
arguments: label: D118
data_type: byte[8]
name: disassemble_data
arguments: label: D93
data_type: f64
name: disassemble_data
arguments: label: D27
data_type: byte[8]
name: disassemble_data
arguments: label: D61
data_type: byte[8]

tool: {"D126": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

tool: {"D22": [0x00,0x00,0x00,0x60,0xfb,0x21,0x09,0x40]}

tool: {"D139": [0x00,0x00,0x00,0x60,0xfb,0x21,0x09,0xc0]}

tool: {"D101": [0x00,0x00,0x00,0x40,0x12,0x87,0x39,0x46]}

tool: {"D147": [0x00,0x00,0x00,0x00,0x00,0x88,0xb9,0x40]}

tool: D16: 1

tool: D10: 6.103515625e-05

tool: D20: 9.5367431640625e-07

tool: D79: 5.960464477539063e-08

tool: {"D81": [0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xbe]}

tool: {"D118": [0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x3e]}

tool: D93: 2.9802322387695312e-08

tool: {"D27": [0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xbe]}

tool: {"D61": [0x00,0x00,0x00,0x00,0x00,0xfc,0xef,0x40]}

assistant: ```c
int main() {
  if (test__extendhfsf2(UINT16_C(0x7e00), makeQNaN32()))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x7e00), makeNaN32(UINT32_C(0x8000))))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x7c00), makeInf32()))
    return 1;
  if (test__extendhfsf2(UINT16_C(0xfc00), -makeInf32()))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x0), 0.0f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x8000), -0.0f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x4248), 3.1415926535f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0xc248), -3.1415926535f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x7c00), 0x1.987124876876324p+100f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x6e62), 0x1.988p+12f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x3c00), 0x1.0p+0f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x0400), 0x1.0p-14f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x0010), 0x1.0p-20f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x0001), 0x1.0p-24f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x8001), -0x1.0p-24f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x0001), 0x1.5p-25f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x0000), 0x1.0p-25f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x8000), -0x1.0p-25f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x7bff), 65504.0f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x7bff), 65504.0f))
    return 1;
  if (test__extendhfsf2(UINT16_C(0x7c00), makeInf32()))
    return 1;
  if (test__extendhfsf2(UINT16_C(0xfc00), -makeInf32()))
    return 1;
  return 0;
}
```