// File: Overv[P]pqpp/./pq.hpp
// Function: pq::connection::get_rows[abi:cxx11](std::unique_ptr<pg_result, std::function<void (pg_result*)>>&&)
vector<row_t> get_rows(unique_ptr<PGresult, function<void(PGresult*)>>&& res) {
            int status = PQresultStatus(res.get());

            if (status == PGRES_COMMAND_OK) {
                return vector<row_t>();
            } else if (status == PGRES_TUPLES_OK) {
                // Determine columns in result
                map<string, int> columnIds;

                int columnCount = PQnfields(res.get());
                for (int c = 0; c < columnCount; c++) {
                    columnIds.emplace(PQfname(res.get(), c), c);
                }

                // Extract rows
                vector<row_t> rows;

                int rowCount = PQntuples(res.get());
                for (int r = 0; r < rowCount; r++) {
                    row_t row;

                    for (auto& column : columnIds) {
                        string val = PQgetvalue(res.get(), r, column.second);
                        bool isNull = PQgetisnull(res.get(), r, column.second);

                        row.emplace(column.first, value(val, isNull));
                    }

                    rows.push_back(row);
                }

                return rows;
            } else {
                throw runtime_error(PQerrorMessage(conn.get()));
            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0x158(%rbp)
movq %rdi, %rax
movq %rax, -0x150(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x18(%rbp), %rdi
callq 0x55b0
movq %rax, %rdi
callq 0x2390
movl %eax, -0x1c(%rbp)
cmpl $0x1, -0x1c(%rbp)
jne 0x6851
movq -0x158(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x2110
movq -0x158(%rbp), %rdi
callq 0x7be0
jmp 0x6c71
cmpl $0x2, -0x1c(%rbp)
jne 0x6bfa
leaq -0x50(%rbp), %rdi
callq 0x7c00
movq -0x18(%rbp), %rdi
callq 0x55b0
movq %rax, %rdi
callq 0x20e0
movl %eax, -0x15c(%rbp)
jmp 0x687d
movl -0x15c(%rbp), %eax
movl %eax, -0x54(%rbp)
movl $0x0, -0x68(%rbp)
movl -0x68(%rbp), %eax
cmpl -0x54(%rbp), %eax
jge 0x690d
movq -0x18(%rbp), %rdi
callq 0x55b0
movq %rax, %rdi
movl -0x68(%rbp), %esi
callq 0x2230
movq %rax, -0x168(%rbp)
jmp 0x68b2
movq -0x168(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x7c20
movb %dl, -0x171(%rbp)
movq %rax, -0x170(%rbp)
jmp 0x68dd
movb -0x171(%rbp), %al
movq -0x170(%rbp), %rcx
movq %rcx, -0x80(%rbp)
movb %al, -0x78(%rbp)
movl -0x68(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x688d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6bec
movq -0x158(%rbp), %rdi
movb $0x0, -0x81(%rbp)
callq 0x7be0
movq -0x18(%rbp), %rdi
callq 0x55b0
movq %rax, %rdi
callq 0x2210
movl %eax, -0x178(%rbp)
jmp 0x6939
movl -0x178(%rbp), %eax
movl %eax, -0x88(%rbp)
movl $0x0, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
cmpl -0x88(%rbp), %eax
jge 0x6bb6
leaq -0xc0(%rbp), %rdi
callq 0x7c70
leaq -0x50(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rdi
callq 0x7c90
movq %rax, -0xd0(%rbp)
movq -0xc8(%rbp), %rdi
callq 0x7cc0
movq %rax, -0xd8(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x7cf0
testb $0x1, %al
jne 0x69ba
jmp 0x6b73
leaq -0xd0(%rbp), %rdi
callq 0x7d20
movq %rax, -0xe0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x55b0
movq %rax, %rdi
movl -0x8c(%rbp), %esi
movq -0xe0(%rbp), %rax
movl 0x20(%rax), %edx
callq 0x20f0
movq %rax, -0x180(%rbp)
jmp 0x69f7
leaq -0x101(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x22f0
movq -0x180(%rbp), %rsi
movq -0x188(%rbp), %rdx
leaq -0x100(%rbp), %rdi
callq 0x2290
jmp 0x6a26
leaq -0x101(%rbp), %rdi
callq 0x23a0
movq -0x18(%rbp), %rdi
callq 0x55b0
movq %rax, %rdi
movl -0x8c(%rbp), %esi
movq -0xe0(%rbp), %rax
movl 0x20(%rax), %edx
callq 0x2370
movl %eax, -0x18c(%rbp)
jmp 0x6a5b
movl -0x18c(%rbp), %eax
testl %eax, %eax
setne -0x102(%rbp)
movq -0xe0(%rbp), %rax
movq %rax, -0x198(%rbp)
movzbl -0x102(%rbp), %edx
andl $0x1, %edx
leaq -0x130(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x7d90
jmp 0x6a97
movq -0x198(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
leaq -0x130(%rbp), %rdx
callq 0x7d40
movb %dl, -0x1a1(%rbp)
movq %rax, -0x1a0(%rbp)
jmp 0x6ac0
movb -0x1a1(%rbp), %al
movq -0x1a0(%rbp), %rcx
movq %rcx, -0x140(%rbp)
movb %al, -0x138(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x63b0
leaq -0x100(%rbp), %rdi
callq 0x2240
leaq -0xd0(%rbp), %rdi
callq 0x7dd0
jmp 0x699e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6be0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6ba8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x101(%rbp), %rdi
callq 0x23a0
jmp 0x6ba8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6b65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x63b0
leaq -0x100(%rbp), %rdi
callq 0x2240
jmp 0x6ba8
movq -0x158(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x7e00
jmp 0x6b88
leaq -0xc0(%rbp), %rdi
callq 0x60f0
movl -0x8c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8c(%rbp)
jmp 0x694f
leaq -0xc0(%rbp), %rdi
callq 0x60f0
jmp 0x6be0
movb $0x1, -0x81(%rbp)
testb $0x1, -0x81(%rbp)
jne 0x6bd2
movq -0x158(%rbp), %rdi
callq 0x33f0
leaq -0x50(%rbp), %rdi
callq 0x7e70
jmp 0x6c71
movq -0x158(%rbp), %rdi
callq 0x33f0
leaq -0x50(%rbp), %rdi
callq 0x7e70
jmp 0x6c81
movl $0x10, %edi
callq 0x2150
movq -0x148(%rbp), %rdi
movq %rax, -0x1b8(%rbp)
callq 0x4980
movq %rax, %rdi
callq 0x22c0
movq %rax, -0x1b0(%rbp)
jmp 0x6c28
movq -0x1b0(%rbp), %rsi
movq -0x1b8(%rbp), %rdi
callq 0x20d0
jmp 0x6c3d
movq -0x1b8(%rbp), %rdi
movq 0xf38d(%rip), %rsi      # 0x15fd8
movq 0xf36e(%rip), %rdx      # 0x15fc0
callq 0x21f0
movq -0x1b8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x22b0
jmp 0x6c81
movq -0x150(%rbp), %rax
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x2200
nopw (%rax,%rax)