// File: xjrueda[P]fixprime/src/jsoncpp.cpp
// Function: Json::valueToString[abi:cxx11](double)
std::string valueToString(double value) {
  // Allocate a buffer that is more than large enough to store the 16 digits of
  // precision requested below.
  char buffer[32];
  int len = -1;

// Print into the buffer. We need not request the alternative representation
// that always has a decimal point because JSON doesn't distingish the
// concepts of reals and integers.
#if defined(_MSC_VER) && defined(__STDC_SECURE_LIB__) // Use secure version with
                                                      // visual studio 2005 to
                                                      // avoid warning.
#if defined(WINCE)
  len = _snprintf(buffer, sizeof(buffer), "%.17g", value);
#else
  len = sprintf_s(buffer, sizeof(buffer), "%.17g", value);
#endif
#else
  if (isfinite(value)) {
    len = snprintf(buffer, sizeof(buffer), "%.17g", value);
  } else {
    // IEEE standard states that NaN values will not compare to themselves
    if (value != value) {
      len = snprintf(buffer, sizeof(buffer), "null");
    } else if (value < 0) {
      len = snprintf(buffer, sizeof(buffer), "-1e+9999");
    } else {
      len = snprintf(buffer, sizeof(buffer), "1e+9999");
    }
    // For those, we do not need to call fixNumLoc, but it is fast.
  }
#endif
  assert(len >= 0);
  fixNumericLocale(buffer, buffer + len);
  return buffer;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x58(%rbp)
movq %rdi, %rax
movq %rax, -0x50(%rbp)
movq %rdi, -0x8(%rbp)
movsd %xmm0, -0x10(%rbp)
movl $0xffffffff, -0x34(%rbp) # imm = 0xFFFFFFFF
movsd -0x10(%rbp), %xmm0
callq 0xa3e80
testb $0x1, %al
jne 0xe9aa3
jmp 0xe9ac4
leaq -0x30(%rbp), %rdi
movsd -0x10(%rbp), %xmm0
movl $0x20, %esi
leaq 0x1b883(%rip), %rdx     # 0x10533b
movb $0x1, %al
callq 0xa21a0
movl %eax, -0x34(%rbp)
jmp 0xe9b34
movsd -0x10(%rbp), %xmm0
ucomisd -0x10(%rbp), %xmm0
jne 0xe9ad4
jp 0xe9ad4
jmp 0xe9af0
leaq -0x30(%rbp), %rdi
movl $0x20, %esi
leaq 0x1b85d(%rip), %rdx     # 0x105341
movb $0x0, %al
callq 0xa21a0
movl %eax, -0x34(%rbp)
jmp 0xe9b32
xorps %xmm0, %xmm0
ucomisd -0x10(%rbp), %xmm0
jbe 0xe9b16
leaq -0x30(%rbp), %rdi
movl $0x20, %esi
leaq 0x1b83c(%rip), %rdx     # 0x105346
movb $0x0, %al
callq 0xa21a0
movl %eax, -0x34(%rbp)
jmp 0xe9b30
leaq -0x30(%rbp), %rdi
movl $0x20, %esi
leaq 0x1b821(%rip), %rdx     # 0x105347
movb $0x0, %al
callq 0xa21a0
movl %eax, -0x34(%rbp)
jmp 0xe9b32
jmp 0xe9b34
cmpl $0x0, -0x34(%rbp)
jl 0xe9b3c
jmp 0xe9b5b
leaq 0x1b80c(%rip), %rdi     # 0x10534f
leaq 0x1ad00(%rip), %rsi     # 0x10484a
movl $0xfea, %edx            # imm = 0xFEA
leaq 0x1b802(%rip), %rcx     # 0x105358
callq 0x9b450
movslq -0x34(%rbp), %rax
leaq -0x30(%rbp,%rax), %rsi
leaq -0x30(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0xee370
leaq -0x35(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0xa35e0
movq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0xa0510
jmp 0xe9b91
leaq -0x35(%rbp), %rdi
callq 0x9e350
movq -0x50(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x35(%rbp), %rdi
callq 0x9e350
movq -0x40(%rbp), %rdi
callq 0xa3520
nopw %cs:(%rax,%rax)