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

```asm
<test_grisu3_print_double>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x420,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0x41c(%rbp)
  lea    D551(%rip),%rax
  mov    %rax,-0x410(%rbp)
  lea    D50(%rip),%rax
  mov    %rax,-0x408(%rbp)
  mov    -0x408(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffe,%ecx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x19b,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  mov    -0x408(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffd,%ecx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x19c,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    D88(%rip),%rax
  mov    %rax,-0x408(%rbp)
  mov    -0x408(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffe,%ecx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x19f,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  mov    -0x408(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffd,%ecx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1a0,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    D187(%rip),%rax
  mov    %rax,-0x408(%rbp)
  mov    -0x408(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffe,%ecx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1a2,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  mov    -0x408(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffd,%ecx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1a3,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D187(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1a5,%ecx
  mov    %eax,%esi
  mov    $0xfffffff6,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D187(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1a6,%ecx
  mov    %eax,%esi
  mov    $0xfffffff6,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x0,%ecx
  lea    D187(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1a7,%ecx
  mov    %eax,%esi
  mov    $0xffffffff,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xffffffff,%ecx
  lea    D187(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1a8,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffe,%ecx
  lea    D187(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1a9,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffd,%ecx
  lea    D187(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1aa,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffc,%ecx
  lea    D187(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1ab,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D557(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1ad,%ecx
  mov    %eax,%esi
  mov    $0xffffff88,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D557(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1ae,%ecx
  mov    %eax,%esi
  mov    $0xffffff88,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x0,%ecx
  lea    D557(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1af,%ecx
  mov    %eax,%esi
  mov    $0xfffffff4,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xffffffff,%ecx
  lea    D557(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1b0,%ecx
  mov    %eax,%esi
  mov    $0xffffffff,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffe,%ecx
  lea    D557(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1b1,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffd,%ecx
  lea    D557(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1b2,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffc,%ecx
  lea    D557(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1b3,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D796(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1b5,%ecx
  mov    %eax,%esi
  mov    $0xfffffb32,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D796(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1b6,%ecx
  mov    %eax,%esi
  mov    $0xfffffb32,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x0,%ecx
  lea    D796(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1b7,%ecx
  mov    %eax,%esi
  mov    $0xffffff85,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xffffffff,%ecx
  lea    D796(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1b8,%ecx
  mov    %eax,%esi
  mov    $0xfffffff4,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffe,%ecx
  lea    D796(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1b9,%ecx
  mov    %eax,%esi
  mov    $0xffffffff,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffd,%ecx
  lea    D796(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1ba,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffc,%ecx
  lea    D796(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1bb,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D279(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1bd,%ecx
  mov    %eax,%esi
  mov    $0xffffcfcc,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D279(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1be,%ecx
  mov    %eax,%esi
  mov    $0xffffcfcc,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x0,%ecx
  lea    D279(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1bf,%ecx
  mov    %eax,%esi
  mov    $0xfffffb2e,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xffffffff,%ecx
  lea    D279(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1c0,%ecx
  mov    %eax,%esi
  mov    $0xffffff85,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffe,%ecx
  lea    D279(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1c1,%ecx
  mov    %eax,%esi
  mov    $0xfffffff4,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffd,%ecx
  lea    D279(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1c2,%ecx
  mov    %eax,%esi
  mov    $0xffffffff,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffc,%ecx
  lea    D279(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1c3,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1c5,%ecx
  mov    %eax,%esi
  mov    $0xfffe1dc6,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x1,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1c6,%ecx
  mov    %eax,%esi
  mov    $0xfffe1dc6,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0x0,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1c7,%ecx
  mov    %eax,%esi
  mov    $0xffffcfc7,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xffffffff,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1c8,%ecx
  mov    %eax,%esi
  mov    $0xfffffb2e,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffe,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1c9,%ecx
  mov    %eax,%esi
  mov    $0xffffff85,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffd,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1ca,%ecx
  mov    %eax,%esi
  mov    $0xfffffff4,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffc,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1cb,%ecx
  mov    %eax,%esi
  mov    $0xffffffff,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffb,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1cd,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffffa,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1ce,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffff9,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1cf,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffff8,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1d0,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffff7,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1d1,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  lea    -0x400(%rbp),%rax
  mov    $0xfffffff6,%ecx
  lea    D830(%rip),%rdx
  lea    D13(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x400(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x418(%rbp),%rdx
  lea    -0x400(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <grisu3_parse_double@plt>
  movsd  -0x418(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  lea    -0x41c(%rbp),%rcx
  mov    -0x410(%rbp),%rdx
  mov    %rcx,%r8
  mov    $0x1d2,%ecx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <check_double@plt>
  mov    -0x41c(%rbp),%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L3
  call   <__stack_chk_fail@plt>
L3:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D551
type_infered: string
name: extract_symbolic_data
arguments: tag: D50
type_infered: string
name: extract_symbolic_data
arguments: tag: D13
type_infered: string
name: extract_symbolic_data
arguments: tag: D88
type_infered: string
name: extract_symbolic_data
arguments: tag: D187
type_infered: string
name: extract_symbolic_data
arguments: tag: D557
type_infered: string
name: extract_symbolic_data
arguments: tag: D796
type_infered: string
name: extract_symbolic_data
arguments: tag: D279
type_infered: string
name: extract_symbolic_data
arguments: tag: D830
type_infered: string

tool: D551: grisu3_print_double

tool: D50: 13

tool: D13: %se%d

tool: D88: -13

tool: D187: -1

tool: D557: -12

tool: D796: -123

tool: D279: -1234

tool: D830: -12345

assistant: ```c
int test_grisu3_print_double() {
  int fail = 0;
  char *id = "grisu3_print_double";
  double v;
  char *vector;
  char buf[1001];
  vector = "13";
  check_double((13e-2), ((sprintf(buf, "%se%d", vector, -2), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 411, &fail);
  check_double((13e-3), ((sprintf(buf, "%se%d", vector, -3), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 412, &fail);
  vector = "-13";
  check_double((-13e-2), ((sprintf(buf, "%se%d", vector, -2), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 415, &fail);
  check_double((-13e-3), ((sprintf(buf, "%se%d", vector, -3), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 416, &fail);
  vector = "-1";
  check_double((-1e-2), ((sprintf(buf, "%se%d", vector, -2), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 418, &fail);
  check_double((-1e-3), ((sprintf(buf, "%se%d", vector, -3), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 419, &fail);
  check_double((-1e1), ((sprintf(buf, "%se%d", "-1", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 421, &fail);
  check_double((-1e+1), ((sprintf(buf, "%se%d", "-1", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 422, &fail);
  check_double((-1e-0), ((sprintf(buf, "%se%d", "-1", -0), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 423, &fail);
  check_double((-1e-1), ((sprintf(buf, "%se%d", "-1", -1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 424, &fail);
  check_double((-1e-2), ((sprintf(buf, "%se%d", "-1", -2), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 425, &fail);
  check_double((-1e-3), ((sprintf(buf, "%se%d", "-1", -3), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 426, &fail);
  check_double((-1e-4), ((sprintf(buf, "%se%d", "-1", -4), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 427, &fail);
  check_double((-12e1), ((sprintf(buf, "%se%d", "-12", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 429, &fail);
  check_double((-12e+1), ((sprintf(buf, "%se%d", "-12", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 430, &fail);
  check_double((-12e-0), ((sprintf(buf, "%se%d", "-12", -0), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 431, &fail);
  check_double((-12e-1), ((sprintf(buf, "%se%d", "-12", -1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 432, &fail);
  check_double((-12e-2), ((sprintf(buf, "%se%d", "-12", -2), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 433, &fail);
  check_double((-12e-3), ((sprintf(buf, "%se%d", "-12", -3), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 434, &fail);
  check_double((-12e-4), ((sprintf(buf, "%se%d", "-12", -4), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 435, &fail);
  check_double((-123e1), ((sprintf(buf, "%se%d", "-123", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 437, &fail);
  check_double((-123e+1), ((sprintf(buf, "%se%d", "-123", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 438, &fail);
  check_double((-123e-0), ((sprintf(buf, "%se%d", "-123", -0), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 439, &fail);
  check_double((-123e-1), ((sprintf(buf, "%se%d", "-123", -1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 440, &fail);
  check_double((-123e-2), ((sprintf(buf, "%se%d", "-123", -2), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 441, &fail);
  check_double((-123e-3), ((sprintf(buf, "%se%d", "-123", -3), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 442, &fail);
  check_double((-123e-4), ((sprintf(buf, "%se%d", "-123", -4), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 443, &fail);
  check_double((-1234e1), ((sprintf(buf, "%se%d", "-1234", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 445, &fail);
  check_double((-1234e+1), ((sprintf(buf, "%se%d", "-1234", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 446, &fail);
  check_double((-1234e-0), ((sprintf(buf, "%se%d", "-1234", -0), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 447, &fail);
  check_double((-1234e-1), ((sprintf(buf, "%se%d", "-1234", -1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 448, &fail);
  check_double((-1234e-2), ((sprintf(buf, "%se%d", "-1234", -2), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 449, &fail);
  check_double((-1234e-3), ((sprintf(buf, "%se%d", "-1234", -3), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 450, &fail);
  check_double((-1234e-4), ((sprintf(buf, "%se%d", "-1234", -4), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 451, &fail);
  check_double((-12345e1), ((sprintf(buf, "%se%d", "-12345", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 453, &fail);
  check_double((-12345e+1), ((sprintf(buf, "%se%d", "-12345", 1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 454, &fail);
  check_double((-12345e-0), ((sprintf(buf, "%se%d", "-12345", -0), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 455, &fail);
  check_double((-12345e-1), ((sprintf(buf, "%se%d", "-12345", -1), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 456, &fail);
  check_double((-12345e-2), ((sprintf(buf, "%se%d", "-12345", -2), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 457, &fail);
  check_double((-12345e-3), ((sprintf(buf, "%se%d", "-12345", -3), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 458, &fail);
  check_double((-12345e-4), ((sprintf(buf, "%se%d", "-12345", -4), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 459, &fail);
  check_double((-12345e-5), ((sprintf(buf, "%se%d", "-12345", -5), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 461, &fail);
  check_double((-12345e-6), ((sprintf(buf, "%se%d", "-12345", -6), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 462, &fail);
  check_double((-12345e-7), ((sprintf(buf, "%se%d", "-12345", -7), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 463, &fail);
  check_double((-12345e-8), ((sprintf(buf, "%se%d", "-12345", -8), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 464, &fail);
  check_double((-12345e-9), ((sprintf(buf, "%se%d", "-12345", -9), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 465, &fail);
  check_double((-12345e-10), ((sprintf(buf, "%se%d", "-12345", -10), grisu3_parse_double(buf, strlen(buf), &v), v)), id, 466, &fail);
  return fail;
}
```