// File: zeeev[P]DASVC/bamtools/src/api/internal/io/BamFtp_p.cpp
// Function: BamTools::Internal::BamFtp::ReceiveReply()
bool BamFtp::ReceiveReply(void) {

    // failure if not connected
    if ( !m_commandSocket->IsConnected() ) {
        SetErrorString("BamFtp::ReceiveReply()", "command socket not connected");
        return false;
    }

    m_response.clear();

    // read header data (& discard for now)
    bool headerEnd = false;
    while ( !headerEnd ) {

        const string headerLine = m_commandSocket->ReadLine();
        m_response += headerLine;

        // if line is of form 'xyz ', quit reading lines
        if ( (headerLine.length() >= 4 ) &&
             isdigit(headerLine[0]) &&
             isdigit(headerLine[1]) &&
             isdigit(headerLine[2]) &&
             ( headerLine[3] != MULTILINE_CONTINUE )
           )
        {
            headerEnd = true;
        }
    }

    // return success, depending on response
    if ( m_response.empty() ) {
        SetErrorString("BamFtp::ReceiveReply", "error reading server reply");
        return false;
    }
    return true;
}

// Assembly:
subq $0x138, %rsp            # imm = 0x138
movq %rdi, 0x128(%rsp)
movq 0x128(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x30(%rax), %rdi
callq 0x75cd0
testb $0x1, %al
jne 0xc7809
leaq 0x107(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x7b5f0
movq 0x48(%rsp), %rdx
leaq 0x24596(%rip), %rsi     # 0xebc81
leaq 0x108(%rsp), %rdi
callq 0x78e70
jmp 0xc76fa
leaq 0xcf(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x7b5f0
movq 0x40(%rsp), %rdx
leaq 0x24580(%rip), %rsi     # 0xebc98
leaq 0xd0(%rsp), %rdi
callq 0x78e70
jmp 0xc7727
movq 0x50(%rsp), %rdi
leaq 0x108(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
callq 0x7ab60
jmp 0xc7743
leaq 0xd0(%rsp), %rdi
callq 0x7cce8
jmp 0xc7752
leaq 0xcf(%rsp), %rdi
callq 0x76f80
leaq 0x108(%rsp), %rdi
callq 0x7cce8
jmp 0xc776e
leaq 0x107(%rsp), %rdi
callq 0x76f80
movb $0x0, 0x137(%rsp)
jmp 0xc7ac0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
jmp 0xc77f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
jmp 0xc77d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x7cce8
jmp 0xc77d7
jmp 0xc77d9
leaq 0xcf(%rsp), %rdi
callq 0x76f80
leaq 0x108(%rsp), %rdi
callq 0x7cce8
jmp 0xc77f5
jmp 0xc77f7
leaq 0x107(%rsp), %rdi
callq 0x76f80
jmp 0xc7ad1
movq 0x50(%rsp), %rdi
addq $0xf0, %rdi
callq 0x78800
movb $0x0, 0xce(%rsp)
movb 0xce(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xc7834
jmp 0xc797c
movq 0x50(%rsp), %rax
movq 0x30(%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
leaq 0xa8(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x74c80
movq 0x50(%rsp), %rdi
movq 0x38(%rsp), %rsi
addq $0xf0, %rdi
callq 0x78530
jmp 0xc786b
leaq 0xa8(%rsp), %rdi
callq 0x79c80
movq %rax, 0x30(%rsp)
jmp 0xc787f
movq 0x30(%rsp), %rax
cmpq $0x4, %rax
jb 0xc7965
xorl %eax, %eax
movl %eax, %esi
leaq 0xa8(%rsp), %rdi
callq 0x771c0
movq %rax, 0x28(%rsp)
jmp 0xc78a6
movq 0x28(%rsp), %rax
movsbl (%rax), %edi
callq 0x75e50
cmpl $0x0, %eax
je 0xc7965
leaq 0xa8(%rsp), %rdi
movl $0x1, %esi
callq 0x771c0
movq %rax, 0x20(%rsp)
jmp 0xc78d5
movq 0x20(%rsp), %rax
movsbl (%rax), %edi
callq 0x75e50
cmpl $0x0, %eax
je 0xc7965
leaq 0xa8(%rsp), %rdi
movl $0x2, %esi
callq 0x771c0
movq %rax, 0x18(%rsp)
jmp 0xc7900
movq 0x18(%rsp), %rax
movsbl (%rax), %edi
callq 0x75e50
cmpl $0x0, %eax
je 0xc7965
leaq 0xa8(%rsp), %rdi
movl $0x3, %esi
callq 0x771c0
movq %rax, 0x10(%rsp)
jmp 0xc792b
movq 0x10(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0xc7965
movb $0x1, 0xce(%rsp)
jmp 0xc7965
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0x7cce8
jmp 0xc7977
leaq 0xa8(%rsp), %rdi
callq 0x7cce8
jmp 0xc7822
jmp 0xc7ad1
movq 0x50(%rsp), %rdi
addq $0xf0, %rdi
callq 0x7aba0
testb $0x1, %al
jne 0xc7996
jmp 0xc7ab8
leaq 0x87(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x7b5f0
movq 0x8(%rsp), %rdx
leaq 0x24301(%rip), %rsi     # 0xebcb5
leaq 0x88(%rsp), %rdi
callq 0x78e70
jmp 0xc79c3
leaq 0x5f(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x7b5f0
movq (%rsp), %rdx
leaq 0x242ee(%rip), %rsi     # 0xebcca
leaq 0x60(%rsp), %rdi
callq 0x78e70
jmp 0xc79e8
movq 0x50(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x7ab60
jmp 0xc7a01
leaq 0x60(%rsp), %rdi
callq 0x7cce8
jmp 0xc7a0d
leaq 0x5f(%rsp), %rdi
callq 0x76f80
leaq 0x88(%rsp), %rdi
callq 0x7cce8
jmp 0xc7a26
leaq 0x87(%rsp), %rdi
callq 0x76f80
movb $0x0, 0x137(%rsp)
jmp 0xc7ac0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
jmp 0xc7aa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
jmp 0xc7a8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x7cce8
jmp 0xc7a8c
jmp 0xc7a8e
leaq 0x5f(%rsp), %rdi
callq 0x76f80
leaq 0x88(%rsp), %rdi
callq 0x7cce8
jmp 0xc7aa7
jmp 0xc7aa9
leaq 0x87(%rsp), %rdi
callq 0x76f80
jmp 0xc7ad1
movb $0x1, 0x137(%rsp)
movb 0x137(%rsp), %al
andb $0x1, %al
addq $0x138, %rsp            # imm = 0x138
retq
movq 0xf8(%rsp), %rdi
callq 0x7b550
movq %rax, %rdi
callq 0x88ef0
nopw %cs:(%rax,%rax)