// 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>::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 0xef29
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
incq %rax
movq %rax, (%rsi)
movq %rdx, %rdi
callq 0x9030
testb %al, %al
je 0xedc4
movq %r14, %rdi
callq 0x9400
cmpl $0x0, 0x30(%rbx)
jne 0xedb5
movq (%r14), %rax
cmpb $0x7d, (%rax)
jne 0xeded
incq %rax
movq %rax, (%r14)
movq %r15, %rdi
xorl %esi, %esi
callq 0x9bc0
testb %al, %al
je 0xee9e
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x0, 0x30(%rbx)
je 0xeea8
leaq 0x39c0(%rip), %rdi      # 0x12795
leaq 0x39ca(%rip), %rsi      # 0x127a6
leaq 0x44f0(%rip), %rcx      # 0x132d3
movl $0x2e8, %edx            # imm = 0x2E8
callq 0x9380
pushq $0x1
popq %r13
movl %r13d, %r12d
movq (%r14), %rax
cmpb $0x22, (%rax)
jne 0xef0f
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movl %r13d, %ecx
callq 0x9900
cmpl $0x0, 0x30(%rbx)
jne 0xedb5
movq %r14, %rdi
callq 0x9400
cmpl $0x0, 0x30(%rbx)
jne 0xedb5
movq (%r14), %rax
cmpb $0x3a, (%rax)
jne 0xef1c
incq %rax
movq %rax, (%r14)
movq %r14, %rdi
callq 0x9400
cmpl $0x0, 0x30(%rbx)
jne 0xedb5
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x90c0
cmpl $0x0, 0x30(%rbx)
jne 0xedb5
movq %r14, %rdi
callq 0x9400
cmpl $0x0, 0x30(%rbx)
jne 0xedb5
movq (%r14), %rax
movzbl (%rax), %ecx
cmpl $0x2c, %ecx
jne 0xeebf
incq %rax
movq %rax, (%r14)
movq %r14, %rdi
callq 0x9400
incl %r12d
cmpl $0x0, 0x30(%rbx)
je 0xedf4
jmp 0xedb5
cmpl $0x0, 0x30(%rbx)
jne 0xef48
movq (%r14), %rax
subq 0x8(%r14), %rax
movl $0x10, 0x30(%rbx)
movq %rax, 0x38(%rbx)
jmp 0xedb5
cmpl $0x7d, %ecx
jne 0xef02
incq %rax
movq %rax, (%r14)
movq %r15, %rdi
movl %r12d, %esi
callq 0x9bc0
testb %al, %al
jne 0xedb5
cmpl $0x0, 0x30(%rbx)
je 0xeea8
leaq 0x38ab(%rip), %rdi      # 0x12795
leaq 0x38b5(%rip), %rsi      # 0x127a6
leaq 0x43db(%rip), %rcx      # 0x132d3
movl $0x314, %edx            # imm = 0x314
callq 0x9380
subq 0x8(%r14), %rax
movl $0x6, 0x30(%rbx)
jmp 0xeeb6
subq 0x8(%r14), %rax
movl $0x4, 0x30(%rbx)
jmp 0xeeb6
subq 0x8(%r14), %rax
movl $0x5, 0x30(%rbx)
jmp 0xeeb6
leaq 0x4392(%rip), %rdi      # 0x132c2
leaq 0x386f(%rip), %rsi      # 0x127a6
leaq 0x4395(%rip), %rcx      # 0x132d3
movl $0x2e4, %edx            # imm = 0x2E4
callq 0x9380
leaq 0x3846(%rip), %rdi      # 0x12795
leaq 0x3850(%rip), %rsi      # 0x127a6
leaq 0x4376(%rip), %rcx      # 0x132d3
movl $0x2ef, %edx            # imm = 0x2EF
callq 0x9380
nop