// File: cqbqdd11519[P]DockerClient/rapidjson/include/rapidjson/reader.h
// Function: void rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::ParseStringToStream<0u, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::GenericStringStream<rapidjson::UTF8<char>>, rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::StackStream<char>>(rapidjson::GenericStringStream<rapidjson::UTF8<char>>&, rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::StackStream<char>&)
RAPIDJSON_FORCEINLINE void ParseStringToStream(InputStream& is, OutputStream& os) {
//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN
#define Z16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        static const char escape[256] = {
            Z16, Z16, 0, 0,'\"', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,'/',
            Z16, Z16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,'\\', 0, 0, 0,
            0, 0,'\b', 0, 0, 0,'\f', 0, 0, 0, 0, 0, 0, 0,'\n', 0,
            0, 0,'\r', 0,'\t', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            Z16, Z16, Z16, Z16, Z16, Z16, Z16, Z16
        };
#undef Z16
//!@endcond

        for (;;) {
            // Scan and copy string before "\\\"" or < 0x20. This is an optional optimzation.
            if (!(parseFlags & kParseValidateEncodingFlag))
                ScanCopyUnescapedString(is, os);

            Ch c = is.Peek();
            if (RAPIDJSON_UNLIKELY(c == '\\')) {    // Escape
                size_t escapeOffset = is.Tell();    // For invalid escaping, report the initial '\\' as error offset
                is.Take();
                Ch e = is.Peek();
                if ((sizeof(Ch) == 1 || unsigned(e) < 256) && RAPIDJSON_LIKELY(escape[static_cast<unsigned char>(e)])) {
                    is.Take();
                    os.Put(static_cast<typename TEncoding::Ch>(escape[static_cast<unsigned char>(e)]));
                }
                else if (RAPIDJSON_LIKELY(e == 'u')) {    // Unicode
                    is.Take();
                    unsigned codepoint = ParseHex4(is, escapeOffset);
                    RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;
                    if (RAPIDJSON_UNLIKELY(codepoint >= 0xD800 && codepoint <= 0xDBFF)) {
                        // Handle UTF-16 surrogate pair
                        if (RAPIDJSON_UNLIKELY(!Consume(is, '\\') || !Consume(is, 'u')))
                            RAPIDJSON_PARSE_ERROR(kParseErrorStringUnicodeSurrogateInvalid, escapeOffset);
                        unsigned codepoint2 = ParseHex4(is, escapeOffset);
                        RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;
                        if (RAPIDJSON_UNLIKELY(codepoint2 < 0xDC00 || codepoint2 > 0xDFFF))
                            RAPIDJSON_PARSE_ERROR(kParseErrorStringUnicodeSurrogateInvalid, escapeOffset);
                        codepoint = (((codepoint - 0xD800) << 10) | (codepoint2 - 0xDC00)) + 0x10000;
                    }
                    TEncoding::Encode(os, codepoint);
                }
                else
                    RAPIDJSON_PARSE_ERROR(kParseErrorStringEscapeInvalid, escapeOffset);
            }
            else if (RAPIDJSON_UNLIKELY(c == '"')) {    // Closing double quote
                is.Take();
                os.Put('\0');   // null-terminate the string
                return;
            }
            else if (RAPIDJSON_UNLIKELY(static_cast<unsigned>(c) < 0x20)) { // RFC 4627: unescaped = %x20-21 / %x23-5B / %x5D-10FFFF
                if (c == '\0')
                    RAPIDJSON_PARSE_ERROR(kParseErrorStringMissQuotationMark, is.Tell());
                else
                    RAPIDJSON_PARSE_ERROR(kParseErrorStringInvalidEncoding, is.Tell());
            }
            else {
                size_t offset = is.Tell();
                if (RAPIDJSON_UNLIKELY((parseFlags & kParseValidateEncodingFlag ?
                    !Transcoder<SEncoding, TEncoding>::Validate(is, os) :
                    !Transcoder<SEncoding, TEncoding>::Transcode(is, os))))
                    RAPIDJSON_PARSE_ERROR(kParseErrorStringInvalidEncoding, offset);
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xe670
movq -0x10(%rbp), %rdi
callq 0xebe0
movb %al, -0x19(%rbp)
movsbl -0x19(%rbp), %eax
cmpl $0x5c, %eax
sete %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1bd7c
jmp 0x1c05a
movq -0x10(%rbp), %rdi
callq 0xf330
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0xee40
movq -0x10(%rbp), %rdi
callq 0xebe0
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
movl %eax, %ecx
movq 0xb21d(%rip), %rax      # 0x26fc8
cmpb $0x0, (%rax,%rcx)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1bdbc
jmp 0x1bde4
movq -0x10(%rbp), %rdi
callq 0xee40
movq -0x18(%rbp), %rdi
movzbl -0x29(%rbp), %eax
movl %eax, %ecx
movq 0xb1f2(%rip), %rax      # 0x26fc8
movsbl (%rax,%rcx), %esi
callq 0xf0b0
jmp 0x1c055
movsbl -0x29(%rbp), %eax
cmpl $0x75, %eax
sete %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1bdfb
jmp 0x1bfeb
movq -0x10(%rbp), %rdi
callq 0xee40
movq -0x48(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0xea10
movl %eax, -0x30(%rbp)
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1be2b
jmp 0x1be30
jmp 0x1c222
jmp 0x1be32
xorl %eax, %eax
cmpl $0xd800, -0x30(%rbp)    # imm = 0xD800
movb %al, -0x49(%rbp)
jb 0x1be4d
cmpl $0xdbff, -0x30(%rbp)    # imm = 0xDBFF
setbe %al
movb %al, -0x49(%rbp)
movb -0x49(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1be5d
jmp 0x1bfdd
movq -0x10(%rbp), %rdi
movl $0x5c, %esi
callq 0xe210
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x4a(%rbp)
jne 0x1be79
jmp 0x1be8c
movq -0x10(%rbp), %rdi
movl $0x75, %esi
callq 0xe210
xorb $-0x1, %al
movb %al, -0x4a(%rbp)
movb -0x4a(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1be99
jmp 0x1bf01
jmp 0x1be9b
jmp 0x1be9d
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
testb $0x1, %al
jne 0x1beae
jmp 0x1beb0
jmp 0x1becf
leaq 0x38d2(%rip), %rdi      # 0x1f789
leaq 0x38dc(%rip), %rsi      # 0x1f79a
movl $0x400, %edx            # imm = 0x400
leaq 0x40e9(%rip), %rcx      # 0x1ffb3
callq 0xe600
movq -0x48(%rbp), %rdi
movq -0x28(%rbp), %rdx
movl $0x9, %esi
callq 0xe410
jmp 0x1bee3
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1bef6
jmp 0x1befb
jmp 0x1c222
jmp 0x1befd
jmp 0x1beff
jmp 0x1bf01
movq -0x48(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0xea10
movl %eax, -0x34(%rbp)
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1bf28
jmp 0x1bf2d
jmp 0x1c222
jmp 0x1bf2f
movb $0x1, %al
cmpl $0xdc00, -0x34(%rbp)    # imm = 0xDC00
movb %al, -0x4b(%rbp)
jb 0x1bf4a
cmpl $0xdfff, -0x34(%rbp)    # imm = 0xDFFF
seta %al
movb %al, -0x4b(%rbp)
movb -0x4b(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1bf57
jmp 0x1bfbf
jmp 0x1bf59
jmp 0x1bf5b
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
testb $0x1, %al
jne 0x1bf6c
jmp 0x1bf6e
jmp 0x1bf8d
leaq 0x3814(%rip), %rdi      # 0x1f789
leaq 0x381e(%rip), %rsi      # 0x1f79a
movl $0x404, %edx            # imm = 0x404
leaq 0x402b(%rip), %rcx      # 0x1ffb3
callq 0xe600
movq -0x48(%rbp), %rdi
movq -0x28(%rbp), %rdx
movl $0x9, %esi
callq 0xe410
jmp 0x1bfa1
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1bfb4
jmp 0x1bfb9
jmp 0x1c222
jmp 0x1bfbb
jmp 0x1bfbd
jmp 0x1bfbf
movl -0x30(%rbp), %eax
subl $0xd800, %eax           # imm = 0xD800
shll $0xa, %eax
movl -0x34(%rbp), %ecx
subl $0xdc00, %ecx           # imm = 0xDC00
orl %ecx, %eax
addl $0x10000, %eax          # imm = 0x10000
movl %eax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0xe740
jmp 0x1c053
jmp 0x1bfed
jmp 0x1bfef
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c000
jmp 0x1c002
jmp 0x1c021
leaq 0x3780(%rip), %rdi      # 0x1f789
leaq 0x378a(%rip), %rsi      # 0x1f79a
movl $0x40a, %edx            # imm = 0x40A
leaq 0x3f97(%rip), %rcx      # 0x1ffb3
callq 0xe600
movq -0x48(%rbp), %rdi
movq -0x28(%rbp), %rdx
movl $0xa, %esi
callq 0xe410
jmp 0x1c035
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c048
jmp 0x1c04d
jmp 0x1c222
jmp 0x1c04f
jmp 0x1c051
jmp 0x1c053
jmp 0x1c055
jmp 0x1c21d
movsbl -0x19(%rbp), %eax
cmpl $0x22, %eax
sete %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c06e
jmp 0x1c087
movq -0x10(%rbp), %rdi
callq 0xee40
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0xf0b0
jmp 0x1c222
movsbl -0x19(%rbp), %eax
cmpl $0x20, %eax
setb %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c09e
jmp 0x1c18c
movsbl -0x19(%rbp), %eax
cmpl $0x0, %eax
jne 0x1c117
jmp 0x1c0a9
jmp 0x1c0ab
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c0bc
jmp 0x1c0be
jmp 0x1c0dd
leaq 0x36c4(%rip), %rdi      # 0x1f789
leaq 0x36ce(%rip), %rsi      # 0x1f79a
movl $0x413, %edx            # imm = 0x413
leaq 0x3edb(%rip), %rcx      # 0x1ffb3
callq 0xe600
movq -0x10(%rbp), %rdi
callq 0xf330
movq -0x48(%rbp), %rdi
movq %rax, %rdx
movl $0xb, %esi
callq 0xe410
jmp 0x1c0f9
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c10c
jmp 0x1c111
jmp 0x1c222
jmp 0x1c113
jmp 0x1c115
jmp 0x1c187
jmp 0x1c119
jmp 0x1c11b
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c12c
jmp 0x1c12e
jmp 0x1c14d
leaq 0x3654(%rip), %rdi      # 0x1f789
leaq 0x365e(%rip), %rsi      # 0x1f79a
movl $0x415, %edx            # imm = 0x415
leaq 0x3e6b(%rip), %rcx      # 0x1ffb3
callq 0xe600
movq -0x10(%rbp), %rdi
callq 0xf330
movq -0x48(%rbp), %rdi
movq %rax, %rdx
movl $0xc, %esi
callq 0xe410
jmp 0x1c169
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c17c
jmp 0x1c181
jmp 0x1c222
jmp 0x1c183
jmp 0x1c185
jmp 0x1c187
jmp 0x1c219
movq -0x10(%rbp), %rdi
callq 0xf330
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xe500
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c1b2
jmp 0x1c217
jmp 0x1c1b4
jmp 0x1c1b6
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c1c7
jmp 0x1c1c9
jmp 0x1c1e8
leaq 0x35b9(%rip), %rdi      # 0x1f789
leaq 0x35c3(%rip), %rsi      # 0x1f79a
movl $0x41c, %edx            # imm = 0x41C
leaq 0x3dd0(%rip), %rcx      # 0x1ffb3
callq 0xe600
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rdx
movl $0xc, %esi
callq 0xe410
jmp 0x1c1fc
movq -0x48(%rbp), %rdi
callq 0xeb20
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c20f
jmp 0x1c211
jmp 0x1c222
jmp 0x1c213
jmp 0x1c215
jmp 0x1c217
jmp 0x1c219
jmp 0x1c21b
jmp 0x1c21d
jmp 0x1bd4c
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)