// File: cqbqdd11519[P]DockerClient/rapidjson/include/rapidjson/reader.h
// Function: rapidjson::ParseResult rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::Parse<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>&)
ParseResult Parse(InputStream& is, Handler& handler) {
        if (parseFlags & kParseIterativeFlag)
            return IterativeParse<parseFlags>(is, handler);

        parseResult_.Clear();

        ClearStackOnExit scope(*this);

        SkipWhitespaceAndComments<parseFlags>(is);
        RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_);

        if (RAPIDJSON_UNLIKELY(is.Peek() == '\0')) {
            RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorDocumentEmpty, is.Tell());
            RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_);
        }
        else {
            ParseValue<parseFlags>(is, handler);
            RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_);

            if (!(parseFlags & kParseStopWhenDoneFlag)) {
                SkipWhitespaceAndComments<parseFlags>(is);
                RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_);

                if (RAPIDJSON_UNLIKELY(is.Peek() != '\0')) {
                    RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorDocumentRootNotSingular, is.Tell());
                    RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_);
                }
            }
        }

        return parseResult_;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x18(%rbp), %rdi
movq %rdi, -0x48(%rbp)
addq $0x30, %rdi
callq 0xef50
movq -0x48(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0xef60
movq -0x48(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xeaa0
jmp 0x18f01
jmp 0x18f03
movq -0x48(%rbp), %rdi
callq 0xeb20
movb %al, -0x49(%rbp)
jmp 0x18f11
movb -0x49(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x18f1e
jmp 0x18f58
movq -0x48(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x38(%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x40(%rbp)
jmp 0x19199
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xec80
jmp 0x191af
jmp 0x18f5a
jmp 0x18f5c
movq -0x20(%rbp), %rdi
callq 0xebe0
movsbl %al, %eax
cmpl $0x0, %eax
sete %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x18f7b
jmp 0x1901d
jmp 0x18f7d
movq -0x48(%rbp), %rdi
callq 0xeb20
movb %al, -0x4a(%rbp)
jmp 0x18f8b
movb -0x4a(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x18f96
jmp 0x18f98
jmp 0x18fb7
leaq 0x67ea(%rip), %rdi      # 0x1f789
leaq 0x67f4(%rip), %rsi      # 0x1f79a
movl $0x23a, %edx            # imm = 0x23A
leaq 0x680d(%rip), %rcx      # 0x1f7bf
callq 0xe600
movq -0x20(%rbp), %rdi
callq 0xf330
movq -0x48(%rbp), %rdi
movq %rax, %rdx
movl $0x1, %esi
callq 0xe410
jmp 0x18fd3
jmp 0x18fd5
jmp 0x18fd7
jmp 0x18fd9
movq -0x48(%rbp), %rdi
callq 0xeb20
movb %al, -0x4b(%rbp)
jmp 0x18fe7
movb -0x4b(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x18ff4
jmp 0x19014
movq -0x48(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x38(%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x40(%rbp)
jmp 0x19199
jmp 0x19016
jmp 0x19018
jmp 0x1917e
movq -0x48(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0xe160
jmp 0x19030
jmp 0x19032
movq -0x48(%rbp), %rdi
callq 0xeb20
movb %al, -0x4c(%rbp)
jmp 0x19040
movb -0x4c(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1904d
jmp 0x1906d
movq -0x48(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x38(%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x40(%rbp)
jmp 0x19199
jmp 0x1906f
jmp 0x19071
movq -0x48(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xeaa0
jmp 0x19080
jmp 0x19082
movq -0x48(%rbp), %rdi
callq 0xeb20
movb %al, -0x4d(%rbp)
jmp 0x19090
movb -0x4d(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1909d
jmp 0x190bd
movq -0x48(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x38(%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x40(%rbp)
jmp 0x19199
jmp 0x190bf
jmp 0x190c1
movq -0x20(%rbp), %rdi
callq 0xebe0
movsbl %al, %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x190e0
jmp 0x1917c
jmp 0x190e2
movq -0x48(%rbp), %rdi
callq 0xeb20
movb %al, -0x4e(%rbp)
jmp 0x190f0
movb -0x4e(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x190fb
jmp 0x190fd
jmp 0x1911c
leaq 0x6685(%rip), %rdi      # 0x1f789
leaq 0x668f(%rip), %rsi      # 0x1f79a
movl $0x246, %edx            # imm = 0x246
leaq 0x66a8(%rip), %rcx      # 0x1f7bf
callq 0xe600
movq -0x20(%rbp), %rdi
callq 0xf330
movq -0x48(%rbp), %rdi
movq %rax, %rdx
movl $0x2, %esi
callq 0xe410
jmp 0x19138
jmp 0x1913a
jmp 0x1913c
jmp 0x1913e
movq -0x48(%rbp), %rdi
callq 0xeb20
movb %al, -0x4f(%rbp)
jmp 0x1914c
movb -0x4f(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x19159
jmp 0x19176
movq -0x48(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x38(%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x40(%rbp)
jmp 0x19199
jmp 0x19178
jmp 0x1917a
jmp 0x1917c
jmp 0x1917e
movq -0x48(%rbp), %rax
movq 0x30(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x38(%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x40(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xec80
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0xf2f0
nopl (%rax,%rax)