// File: /workspace/github_cpp_makefile_star2_O1/cqbqdd11519[P]DockerClient/rapidjson/include/rapidjson/reader.h
// Function: void rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::ParseObject<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>&)
void ParseObject(InputStream& is, Handler& handler) {
        RAPIDJSON_ASSERT(is.Peek() == '{');
        is.Take();  // Skip '{'

        if (RAPIDJSON_UNLIKELY(!handler.StartObject()))
            RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell());

        SkipWhitespaceAndComments<parseFlags>(is);
        RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;

        if (Consume(is, '}')) {
            if (RAPIDJSON_UNLIKELY(!handler.EndObject(0)))  // empty object
                RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell());
            return;
        }

        for (SizeType memberCount = 0;;) {
            if (RAPIDJSON_UNLIKELY(is.Peek() != '"'))
                RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissName, is.Tell());

            ParseString<parseFlags>(is, handler, true);
            RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;

            SkipWhitespaceAndComments<parseFlags>(is);
            RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;

            if (RAPIDJSON_UNLIKELY(!Consume(is, ':')))
                RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissColon, is.Tell());

            SkipWhitespaceAndComments<parseFlags>(is);
            RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;

            ParseValue<parseFlags>(is, handler);
            RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;

            SkipWhitespaceAndComments<parseFlags>(is);
            RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;

            ++memberCount;

            switch (is.Peek()) {
                case ',':
                    is.Take();
                    SkipWhitespaceAndComments<parseFlags>(is);
                    RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID;
                    break;
                case '}':
                    is.Take();
                    if (RAPIDJSON_UNLIKELY(!handler.EndObject(memberCount)))
                        RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell());
                    return;
                default:
                    RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissCommaOrCurlyBracket, is.Tell()); break; // This useless break is only for making warning and coverage happy
            }

            if (parseFlags & kParseTrailingCommasFlag) {
                if (is.Peek() == '}') {
                    if (RAPIDJSON_UNLIKELY(!handler.EndObject(memberCount)))
                        RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell());
                    is.Take();
                    return;
                }
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq (%rsi), %rax
cmpb $0x7b, (%rax)
jne 0xdbd0
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
incq %rax
movq %rax, (%rsi)
leaq 0x20(%rdx), %rdi
movl $0x1, %esi
callq 0x71f0
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movw $0x3, 0xe(%rax)
movq (%r14), %rax
movabsq $0x100002600, %r13      # imm = 0x100002600
movzbl (%rax), %ecx
cmpq $0x20, %rcx
ja 0xda2a
btq %rcx, %r13
jae 0xda2a
incq %rax
jmp 0xda16
movq %rax, (%r14)
cmpl $0x0, 0x30(%rbx)
jne 0xda50
cmpb $0x7d, (%rax)
jne 0xda5f
incq %rax
movq %rax, (%r14)
movq %r15, %rdi
xorl %esi, %esi
callq 0x77c0
testb %al, %al
je 0xdb5a
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r14), %rax
cmpb $0x22, (%rax)
jne 0xdb30
xorl %r12d, %r12d
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movl $0x1, %ecx
callq 0x7640
cmpl $0x0, 0x30(%rbx)
jne 0xda50
movq (%r14), %rax
movzbl (%rax), %ecx
cmpq $0x20, %rcx
ja 0xda9e
btq %rcx, %r13
jae 0xda9e
incq %rax
jmp 0xda8a
movq %rax, (%r14)
cmpb $0x3a, (%rax)
jne 0xdbc6
incq %rax
movq %rax, (%r14)
movzbl (%rax), %ecx
cmpq $0x20, %rcx
ja 0xdac4
btq %rcx, %r13
jae 0xdac4
incq %rax
jmp 0xdab0
movq %rax, (%r14)
cmpl $0x0, 0x30(%rbx)
jne 0xda50
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x7080
cmpl $0x0, 0x30(%rbx)
jne 0xda50
movq (%r14), %rax
movzbl (%rax), %ecx
cmpq $0x20, %rcx
ja 0xdafc
btq %rcx, %r13
jae 0xdafc
incq %rax
jmp 0xdae8
movq %rax, (%r14)
incl %r12d
movzbl (%rax), %ecx
cmpl $0x2c, %ecx
jne 0xdb6e
incq %rax
movq %rax, (%r14)
movzbl (%rax), %ecx
cmpq $0x20, %rcx
ja 0xdb24
btq %rcx, %r13
jae 0xdb24
incq %rax
jmp 0xdb10
movq %rax, (%r14)
cmpb $0x22, (%rax)
je 0xda6e
movl $0x4, %ecx
cmpl $0x0, 0x30(%rbx)
je 0xdbb6
leaq 0x3b5d(%rip), %rdi      # 0x1169f
leaq 0x3b67(%rip), %rsi      # 0x116b0
leaq 0x468d(%rip), %rcx      # 0x121dd
movl $0x2f5, %edx            # imm = 0x2F5
callq 0x72c0
cmpl $0x0, 0x30(%rbx)
jne 0xdbef
movq (%r14), %rax
movl $0x10, %ecx
jmp 0xdbb6
cmpl $0x7d, %ecx
jne 0xdbb1
incq %rax
movq %rax, (%r14)
movq %r15, %rdi
movl %r12d, %esi
callq 0x77c0
testb %al, %al
jne 0xda50
cmpl $0x0, 0x30(%rbx)
je 0xdb64
leaq 0x3b06(%rip), %rdi      # 0x1169f
leaq 0x3b10(%rip), %rsi      # 0x116b0
leaq 0x4636(%rip), %rcx      # 0x121dd
movl $0x314, %edx            # imm = 0x314
callq 0x72c0
movl $0x6, %ecx
subq 0x8(%r14), %rax
movl %ecx, 0x30(%rbx)
movq %rax, 0x38(%rbx)
jmp 0xda50
movq (%r14), %rax
movl $0x5, %ecx
jmp 0xdbb6
leaq 0x45f5(%rip), %rdi      # 0x121cc
leaq 0x3ad2(%rip), %rsi      # 0x116b0
leaq 0x45f8(%rip), %rcx      # 0x121dd
movl $0x2e4, %edx            # imm = 0x2E4
callq 0x72c0
leaq 0x3aa9(%rip), %rdi      # 0x1169f
leaq 0x3ab3(%rip), %rsi      # 0x116b0
leaq 0x45d9(%rip), %rcx      # 0x121dd
movl $0x2ef, %edx            # imm = 0x2EF
callq 0x72c0