// File: millanek[P]evo/process_vcf_use_map.cpp
// Function: loadLinkageGroupMap[abi:cxx11](std::basic_ifstream<char, std::char_traits<char>>*&)
std::map<string, std::vector<std::vector<string> > > loadLinkageGroupMap(std::ifstream*& LGfile) {
    std::map<string, std::vector<std::vector<string> > > LGmap;
    std::vector<std::vector<string> > scaffoldsInLG;
    string currentLG;
    string line;
    getline(*LGfile, line);
    currentLG = line.substr(1, std::string::npos);
    while (getline(*LGfile, line)) {
        if (line[0] == '>') {
            LGmap[currentLG] = scaffoldsInLG;
            currentLG = line.substr(1, std::string::npos);
            scaffoldsInLG.clear();
        } else {
            std::vector<string> thisScaffold = split(line, '\t');
            scaffoldsInLG.push_back(thisScaffold);
        } 
    }
    return LGmap;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0xf0(%rbp)
movq %rdi, %rax
movq %rax, -0xe8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
callq 0x3f5d0
leaq -0x30(%rbp), %rdi
callq 0x3f5f0
leaq -0x50(%rbp), %rdi
callq 0xa820
leaq -0x70(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0xa820
movq -0xe0(%rbp), %rsi
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0xa0d0
jmp 0xc26f4
leaq -0xa0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xa5f0
jmp 0xc2712
leaq -0x50(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0xa710
leaq -0xa0(%rbp), %rdi
callq 0xac88
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq -0x70(%rbp), %rsi
callq 0xa0d0
movq %rax, -0xf8(%rbp)
jmp 0xc2747
movq -0xf8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0xf9(%rbp)
jmp 0xc2765
movb -0xf9(%rbp), %al
testb $0x1, %al
jne 0xc2774
jmp 0xc286d
xorl %eax, %eax
movl %eax, %esi
leaq -0x70(%rbp), %rdi
callq 0xac60
movq %rax, -0x108(%rbp)
jmp 0xc278a
movq -0x108(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0xc2817
movq -0xf0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x3f760
movq %rax, -0x110(%rbp)
jmp 0xc27b2
movq -0x110(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3f840
jmp 0xc27c4
leaq -0xc0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xa5f0
jmp 0xc27e2
leaq -0x50(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0xa710
leaq -0xc0(%rbp), %rdi
callq 0xac88
leaq -0x30(%rbp), %rdi
callq 0x3fa90
jmp 0xc2868
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0xc2894
leaq -0xd8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0xc282e
leaq -0x30(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3f610
jmp 0xc2840
leaq -0xd8(%rbp), %rdi
callq 0x3dfa0
jmp 0xc2868
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x3dfa0
jmp 0xc2894
jmp 0xc272e
movb $0x1, -0x11(%rbp)
leaq -0x70(%rbp), %rdi
callq 0xac88
leaq -0x50(%rbp), %rdi
callq 0xac88
leaq -0x30(%rbp), %rdi
callq 0x3ec50
testb $0x1, -0x11(%rbp)
jne 0xc28c9
jmp 0xc28bd
leaq -0x70(%rbp), %rdi
callq 0xac88
leaq -0x50(%rbp), %rdi
callq 0xac88
leaq -0x30(%rbp), %rdi
callq 0x3ec50
movq -0xf0(%rbp), %rdi
callq 0x3f5b0
jmp 0xc28d9
movq -0xf0(%rbp), %rdi
callq 0x3f5b0
movq -0xe8(%rbp), %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0x78(%rbp), %rdi
callq 0xab50
nopw %cs:(%rax,%rax)