// File: /workspace/github_cpp_makefile_star2_O2/DoubleString[P]RtConverter/src/Json/json_writer.cpp
// Function: Json::StreamWriterBuilder::newStreamWriter() const
StreamWriter* StreamWriterBuilder::newStreamWriter() const {
  JSONCPP_STRING indentation = settings_["indentation"].asString();
  JSONCPP_STRING cs_str = settings_["commentStyle"].asString();
  JSONCPP_STRING pt_str = settings_["precisionType"].asString();
  bool eyc = settings_["enableYAMLCompatibility"].asBool();
  bool dnp = settings_["dropNullPlaceholders"].asBool();
  bool usf = settings_["useSpecialFloats"].asBool();
  unsigned int pre = settings_["precision"].asUInt();
  CommentStyle::Enum cs = CommentStyle::All;
  if (cs_str == "All") {
    cs = CommentStyle::All;
  } else if (cs_str == "None") {
    cs = CommentStyle::None;
  } else {
    throwRuntimeError("commentStyle must be 'All' or 'None'");
  }
  PrecisionType precisionType(significantDigits);
  if (pt_str == "significant") {
    precisionType = PrecisionType::significantDigits;
  } else if (pt_str == "decimal") {
    precisionType = PrecisionType::decimalPlaces;
  } else {
    throwRuntimeError("precisionType must be 'significant' or 'decimal'");
  }
  JSONCPP_STRING colonSymbol = " : ";
  if (eyc) {
    colonSymbol = ": ";
  } else if (indentation.empty()) {
    colonSymbol = ":";
  }
  JSONCPP_STRING nullSymbol = "null";
  if (dnp) {
    nullSymbol.clear();
  }
  if (pre > 17)
    pre = 17;
  JSONCPP_STRING endingLineFeedSymbol;
  return new BuiltStyledStreamWriter(indentation, cs, colonSymbol, nullSymbol,
                                     endingLineFeedSymbol, usf, pre,
                                     precisionType);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdi, %r12
addq $0x8, %r12
leaq 0x479ac(%rip), %rsi     # 0x60502
movq %r12, %rdi
callq 0x1391c
leaq -0xf0(%rbp), %rdi
movq %rax, %rsi
callq 0x12242
leaq 0x4799a(%rip), %rsi     # 0x6050e
movq %r12, %rdi
callq 0x1391c
leaq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0x12242
leaq 0x47989(%rip), %rsi     # 0x6051b
movq %r12, %rdi
callq 0x1391c
leaq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x12242
leaq 0x47979(%rip), %rsi     # 0x60529
movq %r12, %rdi
callq 0x1391c
movq %rax, %rdi
callq 0x12c34
movl %eax, %r14d
leaq 0x47977(%rip), %rsi     # 0x60541
movq %r12, %rdi
callq 0x1391c
movq %rax, %rdi
callq 0x12c34
movl %eax, %r15d
leaq 0x47972(%rip), %rsi     # 0x60556
movq %r12, %rdi
callq 0x1391c
movq %rax, %rdi
callq 0x12c34
movl %eax, %ebx
leaq 0x4796a(%rip), %rsi     # 0x60567
movq %r12, %rdi
callq 0x1391c
movq %rax, %rdi
callq 0x12566
movl %eax, %r12d
leaq 0x4795a(%rip), %rsi     # 0x60571
leaq -0xd0(%rbp), %rdi
callq 0x1930b
testb %al, %al
movb %bl, -0x29(%rbp)
je 0x18c30
pushq $0x2
popq %r13
jmp 0x18c4e
leaq 0x4793e(%rip), %rsi     # 0x60575
leaq -0xd0(%rbp), %rdi
callq 0x1930b
xorl %r13d, %r13d
testb %al, %al
je 0x18d9a
leaq 0x4794a(%rip), %rsi     # 0x6059f
leaq -0xb0(%rbp), %rdi
callq 0x1930b
xorl %ebx, %ebx
testb %al, %al
jne 0x18c85
leaq 0x4793d(%rip), %rsi     # 0x605ab
leaq -0xb0(%rbp), %rdi
callq 0x1930b
testb %al, %al
je 0x18db7
pushq $0x1
popq %rbx
leaq 0x476c2(%rip), %rsi     # 0x6034e
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x8260
testb %r14b, %r14b
je 0x18ca7
leaq 0x476aa(%rip), %rsi     # 0x6034f
jmp 0x18cb8
cmpq $0x0, -0xe8(%rbp)
jne 0x18cc1
leaq 0x56508(%rip), %rsi     # 0x6f1c0
leaq -0x50(%rbp), %rdi
callq 0x8c30
leaq 0x4767c(%rip), %rsi     # 0x60344
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rdx
callq 0x8260
testb %r15b, %r15b
je 0x18ce9
andq $0x0, -0x68(%rbp)
movq -0x70(%rbp), %rax
movb $0x0, (%rax)
leaq -0x80(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movl $0xe8, %edi
callq 0x8630
movq %rax, %r14
cmpl $0x11, %r12d
pushq $0x11
popq %rax
cmovbl %r12d, %eax
subq $0x8, %rsp
movzbl -0x29(%rbp), %r10d
leaq -0xf0(%rbp), %rsi
leaq -0x50(%rbp), %rcx
leaq -0x70(%rbp), %r8
leaq -0x90(%rbp), %r9
movq %r14, %rdi
movl %r13d, %edx
pushq %rbx
pushq %rax
pushq %r10
callq 0x17d4c
addq $0x20, %rsp
leaq -0x90(%rbp), %rdi
callq 0x82c0
leaq -0x70(%rbp), %rdi
callq 0x82c0
leaq -0x50(%rbp), %rdi
callq 0x82c0
leaq -0xb0(%rbp), %rdi
callq 0x82c0
leaq -0xd0(%rbp), %rdi
callq 0x82c0
leaq -0xf0(%rbp), %rdi
callq 0x82c0
movq %r14, %rax
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x477d9(%rip), %rsi     # 0x6057a
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x8260
leaq -0x50(%rbp), %rdi
callq 0x111da
leaq 0x477f5(%rip), %rsi     # 0x605b3
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x8260
leaq -0x50(%rbp), %rdi
callq 0x111da
jmp 0x18dd8
jmp 0x18e1e
movq %rax, %rbx
jmp 0x18e0b
jmp 0x18e1e
jmp 0x18e08
movq %rax, %rbx
movq %r14, %rdi
callq 0x85d0
jmp 0x18df1
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x82c0
leaq -0x70(%rbp), %rdi
callq 0x82c0
jmp 0x18e0b
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x82c0
jmp 0x18e21
jmp 0x18e1e
jmp 0x18e1e
jmp 0x18e1e
jmp 0x18e1e
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x82c0
leaq -0xd0(%rbp), %rdi
callq 0x82c0
leaq -0xf0(%rbp), %rdi
callq 0x82c0
movq %rbx, %rdi
callq 0x8b30
movq %rax, %rbx
jmp 0x18e2d
movq %rax, %rbx
jmp 0x18e39
nop