// File: /workspace/github_cpp_makefile_star2_O2/DoubleString[P]RtConverter/src/Json/json_writer.cpp
// Function: Json::StyledWriter::writeValue(Json::Value const&)
void StyledWriter::writeValue(const Value& value) {
  switch (value.type()) {
  case nullValue:
    pushValue("null");
    break;
  case intValue:
    pushValue(valueToString(value.asLargestInt()));
    break;
  case uintValue:
    pushValue(valueToString(value.asLargestUInt()));
    break;
  case realValue:
    pushValue(valueToString(value.asDouble()));
    break;
  case stringValue: {
    // Is NULL possible for value.string_? No.
    char const* str;
    char const* end;
    bool ok = value.getString(&str, &end);
    if (ok)
      pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end - str)));
    else
      pushValue("");
    break;
  }
  case booleanValue:
    pushValue(valueToString(value.asBool()));
    break;
  case arrayValue:
    writeArrayValue(value);
    break;
  case objectValue: {
    Value::Members members(value.getMemberNames());
    if (members.empty())
      pushValue("{}");
    else {
      writeWithIndent("{");
      indent();
      Value::Members::iterator it = members.begin();
      for (;;) {
        const JSONCPP_STRING& name = *it;
        const Value& childValue = value[name];
        writeCommentBeforeValue(childValue);
        writeWithIndent(valueToQuotedString(name.c_str()));
        document_ += " : ";
        writeValue(childValue);
        if (++it == members.end()) {
          writeCommentAfterValueOnSameLine(childValue);
          break;
        }
        document_ += ',';
        writeCommentAfterValueOnSameLine(childValue);
      }
      unindent();
      writeWithIndent("}");
    }
  } break;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdi, %rbx
movq %rsi, -0x50(%rbp)
movq %rsi, %rdi
callq 0x11e88
cmpl $0x7, %eax
ja 0x16ce1
movl %eax, %eax
leaq 0x4972a(%rip), %rcx     # 0x601b4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x498aa(%rip), %rsi     # 0x60344
leaq -0x48(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x8260
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x16e68
jmp 0x16cd8
leaq -0x78(%rbp), %rsi
leaq -0x60(%rbp), %rdx
movq -0x50(%rbp), %rdi
callq 0x121e6
testb %al, %al
je 0x16cb8
movq -0x78(%rbp), %rsi
movl -0x60(%rbp), %edx
subl %esi, %edx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x161a8
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16e68
jmp 0x16cd8
movq -0x50(%rbp), %rdi
callq 0x12a86
leaq -0x48(%rbp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0x15eec
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16e68
jmp 0x16cd8
movq -0x50(%rbp), %rdi
callq 0x12a90
leaq 0x48daa(%rip), %rax     # 0x5f8d8
movl (%rax), %esi
leaq -0x48(%rbp), %r14
movq %r14, %rdi
xorl %edx, %edx
callq 0x15f86
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16e68
jmp 0x16cd8
leaq -0x78(%rbp), %r14
movq %r14, %rdi
movq -0x50(%rbp), %rsi
callq 0x13ec8
movq (%r14), %rax
cmpq 0x8(%r14), %rax
je 0x16cf0
leaq 0x497da(%rip), %rsi     # 0x6034c
leaq -0x48(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x8260
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x170c6
leaq -0x48(%rbp), %rdi
callq 0x82c0
movq %rbx, %rdi
callq 0x170ec
movq -0x78(%rbp), %r15
leaq 0x20(%rbx), %r12
leaq -0x48(%rbp), %r13
movq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x13956
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x16986
movq (%r15), %rsi
movq %r13, %rdi
callq 0x1617e
movq %rbx, %rdi
movq %r13, %rsi
callq 0x170c6
movq %r13, %rdi
callq 0x82c0
movq %r12, %rdi
leaq 0x49764(%rip), %rsi     # 0x6034e
callq 0x8c20
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16a58
addq $0x20, %r15
cmpq -0x70(%rbp), %r15
je 0x16c83
movq %r12, %rdi
pushq $0x2c
popq %rsi
callq 0x8530
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16d7c
jmp 0x16ba8
movq -0x50(%rbp), %rdi
callq 0x12a7c
leaq -0x48(%rbp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0x15e04
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16e68
jmp 0x16cd8
movq -0x50(%rbp), %rdi
callq 0x12c34
movzbl %al, %esi
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x1614b
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16e68
jmp 0x16cd8
movq %rbx, %rdi
movq -0x50(%rbp), %rsi
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x16e86
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16d7c
movq %rbx, %rdi
callq 0x1714a
leaq 0x496ad(%rip), %rsi     # 0x6034a
leaq -0x48(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x8260
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x170c6
jmp 0x16d10
leaq 0x49926(%rip), %rsi     # 0x605e5
leaq -0x48(%rbp), %rdi
leaq -0x51(%rbp), %rdx
callq 0x8260
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x16e68
leaq -0x48(%rbp), %rdi
callq 0x82c0
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x49652(%rip), %rsi     # 0x60349
leaq -0x48(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x8260
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x16e68
leaq -0x48(%rbp), %rdi
callq 0x82c0
leaq -0x78(%rbp), %rdi
callq 0xec1a
jmp 0x16ce1
jmp 0x16d59
jmp 0x16d67
jmp 0x16d44
jmp 0x16d52
jmp 0x16d44
jmp 0x16d59
jmp 0x16d67
jmp 0x16d67
jmp 0x16d67
jmp 0x16d67
jmp 0x16d59
jmp 0x16d67
jmp 0x16d44
jmp 0x16d44
jmp 0x16d44
jmp 0x16d44
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x82c0
jmp 0x16d73
movq %rax, %rbx
jmp 0x16d73
jmp 0x16d67
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x82c0
jmp 0x16d6a
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0xec1a
movq %rbx, %rdi
callq 0x8b30
nop