// File: afborchert[P]fmt/./printf.hpp
// Function: bool fmt::impl::print_value<char, std::char_traits<char>>(std::basic_ostream<char, std::char_traits<char>>&, fmt::impl::format_segment<char> const&, char const*)
inline bool print_value(std::basic_ostream<CharT, Traits>& out,
      const format_segment<CharT>& fseg, const CharT* value) {
   if (fseg.flags & is_pointer) {
      /* %p given: print pointer value */
      out << static_cast<const void*>(value);
   } else if (fseg.flags & is_unsigned) {
      /* print it as an unsigned integer value */
      print_value(out, fseg, reinterpret_cast<std::uintptr_t>(value));
   } else if (fseg.flags & is_integer) {
      /* print it as a signed integer value */
      print_value(out, fseg, reinterpret_cast<std::intptr_t>(value));
   } else {
      if (fseg.flags & precision) {
	 integer precision = fseg.precision;
	 for (integer i = 0; i < precision; ++i) {
	    if (!value[i]) {
	       precision = i; break;
	    }
	 }
	 integer padding = 0;
	 if (fseg.width > precision) {
	    padding = fseg.width - precision;
	 }
	 bool left = (out.flags() & std::ios_base::adjustfield) ==
		  std::ios_base::left;
	 if (!left) {
	    for (integer i = 0; i < padding; ++i) {
	       out.put(out.widen(' '));
	    }
	 }
	 if (precision > 0) {
	    out.write(value, precision);
	 }
	 if (left) {
	    for (integer i = 0; i < padding; ++i) {
	       out.put(out.widen(' '));
	    }
	 }
      } else {
	 out << value;
      }
   }
   return !!out;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movzwl 0x24(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x11ed6
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x82d0
jmp 0x120aa
movq -0x10(%rbp), %rax
movzwl 0x24(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x11f04
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq -0x20(%rbp), %rdx
callq 0x120d0
jmp 0x120a8
movq -0x10(%rbp), %rax
movzwl 0x24(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x11f32
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
leaq -0x28(%rbp), %rdx
callq 0x124c0
jmp 0x120a6
movq -0x10(%rbp), %rax
movzwl 0x24(%rax), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x12097
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x30(%rbp), %rax
jge 0x11f8e
movq -0x18(%rbp), %rax
movq -0x38(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
jne 0x11f7e
movq -0x38(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x11f8e
jmp 0x11f80
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x11f5c
movq $0x0, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
cmpq -0x30(%rbp), %rax
jle 0x11fb4
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
subq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
callq 0x128b0
movl %eax, %edi
movl $0xb0, %esi
callq 0xfa30
cmpl $0x20, %eax
sete %al
andb $0x1, %al
movb %al, -0x41(%rbp)
testb $0x1, -0x41(%rbp)
jne 0x1202c
movq $0x0, -0x50(%rbp)
movq -0x50(%rbp), %rax
cmpq -0x40(%rbp), %rax
jge 0x1202a
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0x20, %esi
callq 0x83e0
movq -0x60(%rbp), %rdi
movsbl %al, %esi
callq 0x8040
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0x11fe9
jmp 0x1202c
cmpq $0x0, -0x30(%rbp)
jle 0x12044
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0x8600
testb $0x1, -0x41(%rbp)
je 0x12095
movq $0x0, -0x58(%rbp)
movq -0x58(%rbp), %rax
cmpq -0x40(%rbp), %rax
jge 0x12093
movq -0x8(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0x20, %esi
callq 0x83e0
movq -0x68(%rbp), %rdi
movsbl %al, %esi
callq 0x8040
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x12052
jmp 0x12095
jmp 0x120a4
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x8410
jmp 0x120a6
jmp 0x120a8
jmp 0x120aa
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
callq 0x81b0
xorb $-0x1, %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop