// File: cqbqdd11519[P]DockerClient/docker.cpp
// Function: Docker::requestAndParseJson(Method, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned int, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>&)
JSON_DOCUMENT Docker::requestAndParseJson(Method method, const std::string& path, unsigned success_code, JSON_DOCUMENT& param){
    auto result_obj = requestAndParse(method,path,success_code,param,true);
    bool result = (result_obj.HasMember("success") && result_obj["success"].IsBool() && result_obj["success"].GetBool());
    if(result){
        JSON_DOCUMENT doc(rapidjson::kObjectType);

        JSON_DOCUMENT data(&doc.GetAllocator());
        data.Parse(result_obj["data"].GetString());

        doc.AddMember("success", true, doc.GetAllocator());
        doc.AddMember("data", data, doc.GetAllocator());
        return doc;
    }else{
        return result_obj;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdi, -0x148(%rbp)
movq %rdi, %rax
movq %rax, -0x140(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movq %r9, -0x30(%rbp)
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
movq %rsp, %rax
movl $0x1, (%rax)
leaq -0x90(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0xeed0
movq -0x138(%rbp), %rdi
leaq 0xe8dc(%rip), %rsi      # 0x1e24c
callq 0xf010
movb %al, -0x12d(%rbp)
jmp 0xf97d
movb -0x12d(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x149(%rbp)
jne 0xf995
jmp 0xfa18
leaq 0xe8b0(%rip), %rsi      # 0x1e24c
leaq -0x90(%rbp), %rdi
callq 0xe140
movq %rax, -0x158(%rbp)
jmp 0xf9b1
movq -0x158(%rbp), %rdi
callq 0xf090
movb %al, -0x159(%rbp)
jmp 0xf9c5
movb -0x159(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x149(%rbp)
jne 0xf9da
jmp 0xfa18
leaq 0xe86b(%rip), %rsi      # 0x1e24c
leaq -0x90(%rbp), %rdi
callq 0xe140
movq %rax, -0x168(%rbp)
jmp 0xf9f6
movq -0x168(%rbp), %rdi
callq 0xf200
movb %al, -0x169(%rbp)
jmp 0xfa0a
movb -0x169(%rbp), %al
movb %al, -0x149(%rbp)
jmp 0xfa18
movb -0x149(%rbp), %al
andb $0x1, %al
movb %al, -0x91(%rbp)
testb $0x1, -0x91(%rbp)
je 0xfbf6
movq -0x148(%rbp), %rdi
movb $0x0, -0xa5(%rbp)
xorl %eax, %eax
movl %eax, %r8d
movl $0x3, %esi
movl $0x400, %ecx            # imm = 0x400
movq %r8, %rdx
callq 0xe1e0
jmp 0xfa5a
movq -0x148(%rbp), %rdi
callq 0xe5c0
movq %rax, -0x178(%rbp)
jmp 0xfa6f
movq -0x178(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
leaq -0x108(%rbp), %rdi
movl $0x400, %edx            # imm = 0x400
callq 0xf370
jmp 0xfa8d
leaq 0xe7c0(%rip), %rsi      # 0x1e254
leaq -0x90(%rbp), %rdi
callq 0xe140
movq %rax, -0x180(%rbp)
jmp 0xfaa9
movq -0x180(%rbp), %rdi
callq 0xe170
movq %rax, -0x188(%rbp)
jmp 0xfabe
movq -0x188(%rbp), %rsi
leaq -0x108(%rbp), %rdi
callq 0xe100
jmp 0xfad3
leaq 0xe772(%rip), %rsi      # 0x1e24c
leaq -0x118(%rbp), %rdi
callq 0xe630
movq -0x148(%rbp), %rdi
callq 0xe5c0
movq %rax, -0x190(%rbp)
jmp 0xfafb
movq -0x190(%rbp), %rcx
movq -0x148(%rbp), %rdi
leaq -0x118(%rbp), %rsi
movl $0x1, %edx
callq 0xf3c0
jmp 0xfb1c
leaq 0xe731(%rip), %rsi      # 0x1e254
leaq -0x128(%rbp), %rdi
callq 0xe330
movq -0x148(%rbp), %rdi
callq 0xe5c0
movq %rax, -0x198(%rbp)
jmp 0xfb44
movq -0x198(%rbp), %rcx
movq -0x148(%rbp), %rdi
leaq -0x128(%rbp), %rsi
leaq -0x108(%rbp), %rdx
callq 0xe940
jmp 0xfb67
movb $0x1, -0xa5(%rbp)
movl $0x1, -0x12c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0xf590
testb $0x1, -0xa5(%rbp)
jne 0xfbe6
jmp 0xfbda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0xfc2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0xfbe8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x108(%rbp), %rdi
callq 0xf590
jmp 0xfbe8
movq -0x148(%rbp), %rdi
callq 0xf590
jmp 0xfc13
movq -0x148(%rbp), %rdi
callq 0xf590
jmp 0xfc2f
movq -0x148(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xf110
movl $0x1, -0x12c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0xf590
movq -0x140(%rbp), %rax
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
leaq -0x90(%rbp), %rdi
callq 0xf590
movq -0xa0(%rbp), %rdi
callq 0xf2f0
nopw (%rax,%rax)