user: 请从给定的汇编指令推导出C源代码:

```asm
<test_case_reals>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x40,%rsp
  mov    %rdi,-0x38(%rbp)
  mov    %rsi,-0x40(%rbp)
  movss  D88(%rip),%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  D88(%rip),%xmm0
  movss  %xmm0,-0x24(%rbp)
  lea    D9(%rip),%rax
  mov    %rax,-0x20(%rbp)
  movss  -0x28(%rbp),%xmm0
  ucomiss -0x24(%rbp),%xmm0
  jp     L18
  movss  -0x28(%rbp),%xmm0
  ucomiss -0x24(%rbp),%xmm0
  je     L8
L18:
  pxor   %xmm0,%xmm0
  cvtss2sd -0x24(%rbp),%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0x28(%rbp),%xmm2
  movq   %xmm2,%rdx
  mov    -0x20(%rbp),%rcx
  mov    -0x40(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %rcx,%r8
  lea    D20(%rip),%rdx
  mov    %rdx,%rcx
  mov    $0x2a,%edx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <test_abort@plt>
L8:
  movsd  D74(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  D74(%rip),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  lea    D59(%rip),%rax
  mov    %rax,-0x8(%rbp)
  movsd  -0x18(%rbp),%xmm0
  ucomisd -0x10(%rbp),%xmm0
  jp     L10
  movsd  -0x18(%rbp),%xmm0
  ucomisd -0x10(%rbp),%xmm0
  je     L20
L10:
  movsd  -0x10(%rbp),%xmm0
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%rcx
  mov    -0x40(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %rcx,%r8
  lea    D44(%rip),%rdx
  mov    %rdx,%rcx
  mov    $0x2b,%edx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <test_abort@plt>
L20:
  nop
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D88
type: byte[4]
name: parse_data
arguments: data_label: D9
type: string
name: parse_data
arguments: data_label: D20
type: string
name: parse_data
arguments: data_label: D13
type: string
name: parse_data
arguments: data_label: D74
type: byte[8]
name: parse_data
arguments: data_label: D59
type: string
name: parse_data
arguments: data_label: D44
type: string

tool: {"D88": [0x8f,0xc2,0xb5,0x3f]}

tool: D9: 1.42f

tool: D20: %s is equal to %.9g but should be equal to %.9g

tool: D13: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/galdor/libutest/refs/heads/master/tests/main.c

tool: {"D74": [0x00,0x00,0x00,0x00,0x80,0x55,0x01,0xc1]}

tool: D59: -1.42e5

tool: D44: %s is equal to %.17g but should be equal to %.17g

assistant: ```c
void test_case_reals(struct test_suite *test_suite, struct test_context *test_context) {
  do {
    float value__ = 1.42f;
    float expected__ = 1.42f;
    const char *value_str_ = "1.42f";
    if (value__ != expected__) {
      test_abort(test_context, "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/galdor/libutest/refs/heads/master/tests/main.c", 42,
                 "%s is equal to %.9g "
                 "but should be equal to %.9g",
                 value_str_, value__, expected__);
    }
  } while (0);
  do {
    double value__ = -1.42e5;
    double expected__ = -1.42e5;
    const char *value_str_ = "-1.42e5";
    if (value__ != expected__) {
      test_abort(test_context, "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/galdor/libutest/refs/heads/master/tests/main.c", 43,
                 "%s is equal to %.17g "
                 "but should be equal to %.17g",
                 value_str_, value__, expected__);
    }
  } while (0);
}
```