// File: 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
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x40(%rbp)
callq 0xe480
movl %eax, %ecx
movq %rcx, -0x38(%rbp)
subl $0x5, %eax
ja 0x13624
movq -0x38(%rbp), %rax
leaq 0xac69(%rip), %rcx      # 0x1e010
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rdi
callq 0xf1a0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0xe350
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0xe350
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x18(%rbp), %rdi
callq 0xf060
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x13405
jmp 0x1340e
movb $0x0, -0x1(%rbp)
jmp 0x13702
movq -0x40(%rbp), %rdi
callq 0xecc0
movq %rax, -0x20(%rbp)
movq -0x40(%rbp), %rdi
callq 0xede0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0xe890
testb $0x1, %al
jne 0x1343e
jmp 0x13528
leaq -0x20(%rbp), %rdi
callq 0xf1f0
movq %rax, %rdi
callq 0xe1d0
testb $0x1, %al
jne 0x13455
jmp 0x13457
jmp 0x13476
leaq 0xae0d(%rip), %rdi      # 0x1e26b
leaq 0xae19(%rip), %rsi      # 0x1e27e
movl $0x774, %edx            # imm = 0x774
leaq 0xae34(%rip), %rcx      # 0x1e2a5
callq 0xe600
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xf1f0
movq %rax, %rdi
callq 0xe170
movq %rax, -0x50(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xf1f0
movq %rax, %rdi
callq 0xea80
movl %eax, -0x44(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xf1f0
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rsi
movl -0x44(%rbp), %edx
movzwl 0xe(%rax), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
setne %al
movzbl %al, %ecx
andl $0x1, %ecx
callq 0xe520
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x134e1
jmp 0x134ea
movb $0x0, -0x1(%rbp)
jmp 0x13702
leaq -0x20(%rbp), %rdi
callq 0xf1f0
movq %rax, %rdi
addq $0x10, %rdi
movq -0x18(%rbp), %rsi
callq 0xf400
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1350f
jmp 0x13518
movb $0x0, -0x1(%rbp)
jmp 0x13702
jmp 0x1351a
leaq -0x20(%rbp), %rdi
callq 0xe8a0
jmp 0x1341b
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rdi
movl (%rax), %esi
callq 0xe580
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x18(%rbp), %rdi
callq 0xec40
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x13556
jmp 0x1355f
movb $0x0, -0x1(%rbp)
jmp 0x13702
movq -0x40(%rbp), %rdi
callq 0xf360
movq %rax, -0x30(%rbp)
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rax
movq %rax, -0x60(%rbp)
callq 0xf2c0
movq %rax, %rcx
movq -0x60(%rbp), %rax
cmpq %rcx, %rax
je 0x135bb
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xf400
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x135a2
jmp 0x135ab
movb $0x0, -0x1(%rbp)
jmp 0x13702
jmp 0x135ad
movq -0x30(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x30(%rbp)
jmp 0x1356c
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rdi
movl (%rax), %esi
callq 0xec60
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x40(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x70(%rbp)
callq 0xe170
movq -0x40(%rbp), %rdi
movq %rax, -0x68(%rbp)
callq 0xea80
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl %eax, %edx
movq -0x40(%rbp), %rax
movzwl 0xe(%rax), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
setne %al
movzbl %al, %ecx
andl $0x1, %ecx
callq 0xf4e0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x40(%rbp), %rdi
callq 0xe480
cmpl $0x6, %eax
jne 0x13634
jmp 0x13653
leaq 0xad50(%rip), %rdi      # 0x1e38b
leaq 0xac3c(%rip), %rsi      # 0x1e27e
movl $0x788, %edx            # imm = 0x788
leaq 0xac57(%rip), %rcx      # 0x1e2a5
callq 0xe600
movq -0x40(%rbp), %rdi
callq 0xf320
testb $0x1, %al
jne 0x13662
jmp 0x1367d
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rdi
movsd (%rax), %xmm0
callq 0xf0f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x40(%rbp), %rdi
callq 0xe3a0
testb $0x1, %al
jne 0x1368c
jmp 0x136a2
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rdi
movl (%rax), %esi
callq 0xe9e0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x40(%rbp), %rdi
callq 0xe0d0
testb $0x1, %al
jne 0x136b1
jmp 0x136c7
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rdi
movl (%rax), %esi
callq 0xf410
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x40(%rbp), %rdi
callq 0xe7c0
testb $0x1, %al
jne 0x136d6
jmp 0x136ed
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rdi
movq (%rax), %rsi
callq 0xf420
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x13702
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rdi
movq (%rax), %rsi
callq 0xefd0
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)