// File: cqbqdd11519[P]DockerClient/rapidjson/include/rapidjson/reader.h
// Function: void rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::ParseString<0u, rapidjson::GenericStringStream<rapidjson::UTF8<char>>, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>>(rapidjson::GenericStringStream<rapidjson::UTF8<char>>&, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>&, bool)
void ParseString(InputStream& is, Handler& handler, bool isKey = false) {
        internal::StreamLocalCopy<InputStream> copy(is);
        InputStream& s(copy.s);

        RAPIDJSON_ASSERT(s.Peek() == '\"');
        s.Take();  // Skip '\"'

        bool success = false;
        if (parseFlags & kParseInsituFlag) {
            typename InputStream::Ch *head = s.PutBegin();
            ParseStringToStream<parseFlags, SourceEncoding, SourceEncoding>(s, s);
            RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;
            size_t length = s.PutEnd(head) - 1;
            RAPIDJSON_ASSERT(length <= 0xFFFFFFFF);
            const typename TargetEncoding::Ch* const str = reinterpret_cast<typename TargetEncoding::Ch*>(head);
            success = (isKey ? handler.Key(str, SizeType(length), false) : handler.String(str, SizeType(length), false));
        }
        else {
            StackStream<typename TargetEncoding::Ch> stackStream(stack_);
            ParseStringToStream<parseFlags, SourceEncoding, TargetEncoding>(s, stackStream);
            RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;
            SizeType length = static_cast<SizeType>(stackStream.Length()) - 1;
            const typename TargetEncoding::Ch* const str = stackStream.Pop();
            success = (isKey ? handler.Key(str, length, true) : handler.String(str, length, true));
        }
        if (RAPIDJSON_UNLIKELY(!success))
            RAPIDJSON_PARSE_ERROR(kParseErrorTermination, s.Tell());
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movb %cl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0xef90
leaq -0x38(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
callq 0xebe0
movsbl %al, %eax
cmpl $0x22, %eax
jne 0x19bbe
jmp 0x19bdd
leaq 0x626e(%rip), %rdi      # 0x1fe33
leaq 0x5bce(%rip), %rsi      # 0x1f79a
movl $0x3c2, %edx            # imm = 0x3C2
leaq 0x626c(%rip), %rcx      # 0x1fe44
callq 0xe600
movq -0x40(%rbp), %rdi
callq 0xee40
movq -0x80(%rbp), %rsi
movb $0x0, -0x41(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xe550
jmp 0x19bf9
movq -0x80(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x58(%rbp), %rdx
callq 0xe6d0
jmp 0x19c0c
jmp 0x19c0e
movq -0x80(%rbp), %rdi
callq 0xeb20
movb %al, -0x81(%rbp)
jmp 0x19c1f
movb -0x81(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x19c2f
jmp 0x19c55
movl $0x1, -0x68(%rbp)
jmp 0x19daa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xe790
jmp 0x19dbc
jmp 0x19c57
jmp 0x19c59
leaq -0x58(%rbp), %rdi
callq 0xe880
movq %rax, -0x90(%rbp)
jmp 0x19c6b
movq -0x90(%rbp), %rax
decl %eax
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xe1b0
movq %rax, -0x98(%rbp)
jmp 0x19c89
movq -0x98(%rbp), %rax
movq %rax, -0x78(%rbp)
testb $0x1, -0x19(%rbp)
je 0x19cc5
movq -0x18(%rbp), %rdi
movq -0x78(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl $0x1, %ecx
callq 0xed80
movb %al, -0x99(%rbp)
jmp 0x19cb7
movb -0x99(%rbp), %al
movb %al, -0x9a(%rbp)
jmp 0x19cf0
movq -0x18(%rbp), %rdi
movq -0x78(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl $0x1, %ecx
callq 0xea60
movb %al, -0x9b(%rbp)
jmp 0x19ce2
movb -0x9b(%rbp), %al
movb %al, -0x9a(%rbp)
jmp 0x19cf0
movb -0x9a(%rbp), %al
andb $0x1, %al
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x19d0d
jmp 0x19da3
jmp 0x19d0f
jmp 0x19d11
movq -0x80(%rbp), %rdi
callq 0xeb20
movb %al, -0x9c(%rbp)
jmp 0x19d22
movb -0x9c(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x19d30
jmp 0x19d32
jmp 0x19d51
leaq 0x5a50(%rip), %rdi      # 0x1f789
leaq 0x5a5a(%rip), %rsi      # 0x1f79a
movl $0x3d8, %edx            # imm = 0x3D8
leaq 0x60f8(%rip), %rcx      # 0x1fe44
callq 0xe600
movq -0x40(%rbp), %rdi
callq 0xf330
movq -0x80(%rbp), %rdi
movq %rax, %rdx
movl $0x10, %esi
callq 0xe410
jmp 0x19d6d
jmp 0x19d6f
movq -0x80(%rbp), %rdi
callq 0xeb20
movb %al, -0x9d(%rbp)
jmp 0x19d80
movb -0x9d(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x19d90
jmp 0x19d99
movl $0x1, -0x68(%rbp)
jmp 0x19daa
jmp 0x19d9b
jmp 0x19d9d
jmp 0x19d9f
jmp 0x19da1
jmp 0x19da3
movl $0x0, -0x68(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xe790
addq $0xa0, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0xf2f0
nopw %cs:(%rax,%rax)
nop