// File: /workspace/github_cpp_makefile_star2_O3/cqbqdd11519[P]DockerClient/rapidjson/include/rapidjson/document.h
// Function: bool rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>>::Accept<rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<char>, rapidjson::CrtAllocator>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator, 0u>>(rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<char>, rapidjson::CrtAllocator>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator, 0u>&) const
bool Accept(Handler& handler) const {
        switch(GetType()) {
        case kNullType:     return handler.Null();
        case kFalseType:    return handler.Bool(false);
        case kTrueType:     return handler.Bool(true);

        case kObjectType:
            if (RAPIDJSON_UNLIKELY(!handler.StartObject()))
                return false;
            for (ConstMemberIterator m = MemberBegin(); m != MemberEnd(); ++m) {
                RAPIDJSON_ASSERT(m->name.IsString()); // User may change the type of name by MemberIterator.
                if (RAPIDJSON_UNLIKELY(!handler.Key(m->name.GetString(), m->name.GetStringLength(), (m->name.data_.f.flags & kCopyFlag) != 0)))
                    return false;
                if (RAPIDJSON_UNLIKELY(!m->value.Accept(handler)))
                    return false;
            }
            return handler.EndObject(data_.o.size);

        case kArrayType:
            if (RAPIDJSON_UNLIKELY(!handler.StartArray()))
                return false;
            for (const GenericValue* v = Begin(); v != End(); ++v)
                if (RAPIDJSON_UNLIKELY(!v->Accept(handler)))
                    return false;
            return handler.EndArray(data_.a.size);
    
        case kStringType:
            return handler.String(GetString(), GetStringLength(), (data_.f.flags & kCopyFlag) != 0);
    
        default:
            RAPIDJSON_ASSERT(GetType() == kNumberType);
            if (IsDouble())         return handler.Double(data_.n.d);
            else if (IsInt())       return handler.Int(data_.n.i.i);
            else if (IsUint())      return handler.Uint(data_.n.u.u);
            else if (IsInt64())     return handler.Int64(data_.n.i64);
            else                    return handler.Uint64(data_.n.u64);
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movzwl 0xe(%rdi), %eax
movl %eax, %ecx
andl $0x7, %ecx
leaq 0x3d56(%rip), %rdx      # 0xf040
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x7270
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x78b0
movq %rbx, %rdi
callq 0x7500
testb %al, %al
je 0xb55e
cmpw $0x4, 0xe(%r14)
jne 0xb5ad
movabsq $0xffffffffffff, %r15   # imm = 0xFFFFFFFFFFFF
andq 0x8(%r14), %r15
movq %r14, %rdi
callq 0x7480
cmpq %r15, %rax
je 0xb36e
movq %r15, %rdi
movq %rbx, %rsi
callq 0x7820
testb %al, %al
je 0xb55e
addq $0x10, %r15
movq %r14, %rdi
callq 0x7480
cmpq %rax, %r15
jne 0xb34a
movl (%r14), %esi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7520
movq %rbx, %rdi
movl $0x2, %esi
callq 0x7270
movq %rbx, %rdi
movl $0x1, %esi
jmp 0xb474
movq %rbx, %rdi
callq 0x76d0
testb %al, %al
je 0xb55e
cmpw $0x3, 0xe(%r14)
jne 0xb5cc
movabsq $0xffffffffffff, %r15   # imm = 0xFFFFFFFFFFFF
andq 0x8(%r14), %r15
movq %r14, %rdi
callq 0x75f0
cmpq %r15, %rax
je 0xb449
addq $0x10, %r15
testb $0x4, -0x1(%r15)
je 0xb56f
leaq -0x10(%r15), %r12
movq %r12, %rdi
callq 0x7090
movq %rax, %r13
movq %r12, %rdi
callq 0x7450
movzwl -0x2(%r15), %ecx
shrl $0xb, %ecx
andl $0x1, %ecx
movq %rbx, %rdi
movq %r13, %rsi
movl %eax, %edx
callq 0x78a0
testb %al, %al
je 0xb55e
movq %r15, %rdi
movq %rbx, %rsi
callq 0x7820
testb %al, %al
je 0xb55e
movq %r14, %rdi
callq 0x75f0
leaq 0x20(%r15), %rcx
addq $0x10, %r15
cmpq %rax, %r15
movq %rcx, %r15
jne 0xb3dc
movl (%r14), %esi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7250
movq %rbx, %rdi
movl $0x1, %esi
callq 0x7270
movq %rbx, %rdi
xorl %esi, %esi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x73c0
movq %r14, %rdi
callq 0x7090
movq %rax, %r15
movq %r14, %rdi
callq 0x7450
movzwl 0xe(%r14), %ecx
shrl $0xb, %ecx
andl $0x1, %ecx
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x78a0
btl $0x9, %eax
jb 0xb4eb
testb $0x20, %al
jne 0xb51d
testb $0x40, %al
jne 0xb536
movq (%r14), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
testb %al, %al
js 0xb54f
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7690
movsd (%r14), %xmm0
movsd %xmm0, -0x30(%rbp)
movq %rbx, %rdi
movl $0x6, %esi
callq 0x7270
movq %rbx, %rdi
movsd -0x30(%rbp), %xmm0
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7040
movl (%r14), %esi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x73e0
movl (%r14), %esi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7830
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7840
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3d3b(%rip), %rdi      # 0xf2b1
leaq 0x3d47(%rip), %rsi      # 0xf2c4
leaq 0x3d67(%rip), %rcx      # 0xf2eb
movl $0x774, %edx            # imm = 0x774
callq 0x72b0
leaq 0x3e3c(%rip), %rdi      # 0xf3d1
leaq 0x3d28(%rip), %rsi      # 0xf2c4
leaq 0x3d48(%rip), %rcx      # 0xf2eb
movl $0x788, %edx            # imm = 0x788
callq 0x72b0
leaq 0x45d5(%rip), %rdi      # 0xfb89
leaq 0x3d09(%rip), %rsi      # 0xf2c4
leaq 0x45d1(%rip), %rcx      # 0xfb93
movl $0x65b, %edx            # imm = 0x65B
callq 0x72b0
leaq 0x4201(%rip), %rdi      # 0xf7d4
leaq 0x3cea(%rip), %rsi      # 0xf2c4
leaq 0x41fe(%rip), %rcx      # 0xf7df
movl $0x4a7, %edx            # imm = 0x4A7
callq 0x72b0
nop