// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movups (%rsi), %xmm0
movaps %xmm0, -0x30(%rbp)
movq %rsi, -0x20(%rbp)
movq -0x30(%rbp), %rax
cmpb $0x22, (%rax)
jne 0xecff
movq %rdx, %r14
movq %rdi, %rbx
incq %rax
leaq -0x30(%rbp), %rsi
movq %rax, (%rsi)
leaq -0x40(%rbp), %rdx
movq %rdi, (%rdx)
andl $0x0, 0x8(%rdx)
callq 0x93d0
cmpl $0x0, 0x30(%rbx)
jne 0xecce
leaq -0x40(%rbp), %rdi
movl 0x8(%rdi), %r15d
decl %r15d
callq 0x9110
pushq $0x1
popq %rcx
movq %r14, %rdi
movq %rax, %rsi
movl %r15d, %edx
callq 0x9600
testb %al, %al
je 0xece4
movq -0x20(%rbp), %rax
movaps -0x30(%rbp), %xmm0
movups %xmm0, (%rax)
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x0, 0x30(%rbx)
jne 0xed1e
movq -0x30(%rbp), %rax
subq -0x28(%rbp), %rax
movl $0x10, 0x30(%rbx)
movq %rax, 0x38(%rbx)
jmp 0xecce
leaq 0x3fcf(%rip), %rdi      # 0x12cd5
leaq 0x3a99(%rip), %rsi      # 0x127a6
leaq 0x3fd2(%rip), %rcx      # 0x12ce6
movl $0x3c2, %edx            # imm = 0x3C2
callq 0x9380
leaq 0x3a70(%rip), %rdi      # 0x12795
leaq 0x3a7a(%rip), %rsi      # 0x127a6
leaq 0x3fb3(%rip), %rcx      # 0x12ce6
movl $0x3d8, %edx            # imm = 0x3D8
callq 0x9380
jmp 0xed3f
movq -0x20(%rbp), %rcx
movaps -0x30(%rbp), %xmm0
movups %xmm0, (%rcx)
movq %rax, %rdi
callq 0x9be0