// File: /workspace/github_cpp_makefile_star2_O3/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 0xe20a
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
incq %rax
movq %rax, (%rsi)
leaq 0x20(%rdx), %rdi
movl $0x1, %esi
callq 0x71e0
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 0xe090
btq %rcx, %r13
jae 0xe090
incq %rax
jmp 0xe07c
movq %rax, (%r14)
cmpl $0x0, 0x30(%rbx)
jne 0xe0b9
movzbl (%rax), %ecx
cmpl $0x7d, %ecx
jne 0xe0c8
incq %rax
movq %rax, (%r14)
movq %r15, %rdi
xorl %esi, %esi
callq 0x77a0
testb %al, %al
je 0xe197
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x22, %ecx
jne 0xe190
xorl %r12d, %r12d
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movl $0x1, %ecx
callq 0x7620
cmpl $0x0, 0x30(%rbx)
jne 0xe0b9
movq (%r14), %rax
movzbl (%rax), %ecx
cmpq $0x20, %rcx
ja 0xe104
btq %rcx, %r13
jae 0xe104
incq %rax
jmp 0xe0f0
movq %rax, (%r14)
cmpb $0x3a, (%rax)
jne 0xe203
incq %rax
movq %rax, (%r14)
movzbl (%rax), %ecx
cmpq $0x20, %rcx
ja 0xe12a
btq %rcx, %r13
jae 0xe12a
incq %rax
jmp 0xe116
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x7080
cmpl $0x0, 0x30(%rbx)
jne 0xe0b9
movq (%r14), %rax
movzbl (%rax), %ecx
cmpq $0x20, %rcx
ja 0xe15c
btq %rcx, %r13
jae 0xe15c
incq %rax
jmp 0xe148
movq %rax, (%r14)
incl %r12d
movzbl (%rax), %ecx
cmpl $0x2c, %ecx
jne 0xe1ab
incq %rax
movq %rax, (%r14)
movzbl (%rax), %ecx
cmpq $0x20, %rcx
ja 0xe184
btq %rcx, %r13
jae 0xe184
incq %rax
jmp 0xe170
movq %rax, (%r14)
cmpb $0x22, (%rax)
je 0xe0d4
movl $0x4, %ecx
jmp 0xe1f3
cmpl $0x0, 0x30(%rbx)
jne 0xe229
movq (%r14), %rax
movl $0x10, %ecx
jmp 0xe1f3
cmpl $0x7d, %ecx
jne 0xe1ee
incq %rax
movq %rax, (%r14)
movq %r15, %rdi
movl %r12d, %esi
callq 0x77a0
testb %al, %al
jne 0xe0b9
cmpl $0x0, 0x30(%rbx)
je 0xe1a1
leaq 0x24c9(%rip), %rdi      # 0x1069f
leaq 0x24d3(%rip), %rsi      # 0x106b0
leaq 0x2ff9(%rip), %rcx      # 0x111dd
movl $0x314, %edx            # imm = 0x314
callq 0x72b0
movl $0x6, %ecx
subq 0x8(%r14), %rax
movl %ecx, 0x30(%rbx)
movq %rax, 0x38(%rbx)
jmp 0xe0b9
movl $0x5, %ecx
jmp 0xe1f3
leaq 0x2fbb(%rip), %rdi      # 0x111cc
leaq 0x2498(%rip), %rsi      # 0x106b0
leaq 0x2fbe(%rip), %rcx      # 0x111dd
movl $0x2e4, %edx            # imm = 0x2E4
callq 0x72b0
leaq 0x246f(%rip), %rdi      # 0x1069f
leaq 0x2479(%rip), %rsi      # 0x106b0
leaq 0x2f9f(%rip), %rcx      # 0x111dd
movl $0x2ef, %edx            # imm = 0x2EF
callq 0x72b0