// File: millanek[P]evo/./process_vcf_annotation_tools.h
// Function: LinkedCoordsBed::loadLinkedCoords[abi:cxx11](std::basic_ifstream<char, std::char_traits<char>>*&)
std::vector<std::vector<std::vector<string> > > loadLinkedCoords(std::ifstream*& bedFile) {
        std::vector<std::vector<std::vector<string> > > elementCoordsVector;
        std::vector<std::vector<string> > thisElement;
        
        // Do the first line to find the name of the first scaffold and of the first element
        string line;
        getline(*bedFile, line);
        std::vector<string> bedVector = split(line, '\t');
        string currentElementName = bedVector[3];
        thisElement.push_back(bedVector);
        
        //
        while (getline(*bedFile, line)) {
            std::vector<string> bedVector = split(line, '\t');
            string element = bedVector[3];
            if (element == currentElementName) {
                thisElement.push_back(bedVector);
            } else {
                elementCoordsVector.push_back(thisElement);
                thisElement.clear();
                currentElementName = element;
                thisElement.push_back(bedVector);
            }
        }
        return elementCoordsVector;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0xf0(%rbp)
movq %rdi, %rax
movq %rax, -0xe8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
callq 0x3ee50
leaq -0x38(%rbp), %rdi
callq 0x3f5f0
leaq -0x58(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0xa820
movq -0xe0(%rbp), %rsi
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa0d0
jmp 0x44b5f
leaq -0x80(%rbp), %rdi
leaq -0x58(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x44b73
leaq -0x80(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xa0(%rbp), %rdi
callq 0xa250
jmp 0x44b92
leaq -0x38(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x3f610
jmp 0x44ba1
jmp 0x44ba3
movq -0x18(%rbp), %rax
movq (%rax), %rdi
leaq -0x58(%rbp), %rsi
callq 0xa0d0
movq %rax, -0xf8(%rbp)
jmp 0x44bbc
movq -0xf8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0xf9(%rbp)
jmp 0x44bda
movb -0xf9(%rbp), %al
testb $0x1, %al
jne 0x44be9
jmp 0x44d1c
leaq -0xb8(%rbp), %rdi
leaq -0x58(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x44c00
leaq -0xb8(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0xd8(%rbp), %rdi
callq 0xa250
jmp 0x44c22
leaq -0xd8(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x39210
testb $0x1, %al
jne 0x44c3b
jmp 0x44cad
leaq -0x38(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3f610
jmp 0x44c4d
jmp 0x44cf1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x44d64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x44d5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x44d4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x44d0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0xac88
jmp 0x44d0e
movq -0xf0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x44e40
jmp 0x44cbf
leaq -0x38(%rbp), %rdi
callq 0x3fa90
leaq -0xa0(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0xa060
jmp 0x44cdd
leaq -0x38(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3f610
jmp 0x44cef
jmp 0x44cf1
leaq -0xd8(%rbp), %rdi
callq 0xac88
leaq -0xb8(%rbp), %rdi
callq 0x3dfa0
jmp 0x44ba3
leaq -0xb8(%rbp), %rdi
callq 0x3dfa0
jmp 0x44d4f
movb $0x1, -0x19(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xac88
leaq -0x80(%rbp), %rdi
callq 0x3dfa0
leaq -0x58(%rbp), %rdi
callq 0xac88
leaq -0x38(%rbp), %rdi
callq 0x3ec50
testb $0x1, -0x19(%rbp)
jne 0x44d90
jmp 0x44d84
leaq -0xa0(%rbp), %rdi
callq 0xac88
leaq -0x80(%rbp), %rdi
callq 0x3dfa0
leaq -0x58(%rbp), %rdi
callq 0xac88
leaq -0x38(%rbp), %rdi
callq 0x3ec50
movq -0xf0(%rbp), %rdi
callq 0x44de0
jmp 0x44da0
movq -0xf0(%rbp), %rdi
callq 0x44de0
movq -0xe8(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0xab50
nopl (%rax)