// File: GAStudyGroup[P]GPX2/src/base/sources/ImportData.cpp
// Function: ImportData::reader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void ImportData::reader(string flag, string input)
{
    if (flag == "name") {
        tspName = input;
        //cout << input << " is a name! \n";
    } else if (flag == "type") {
        type = input;
        //cout << input << " is a type! \n";
    } else if (flag == "comment") {
        comment += (input + " ");
        //cout << input << " is a comment! \n";
    } else if (flag == "dimension") {
        //cout << input << " is a dimension! \n";
        citiescoord.reserve(stoi(input));
        flagaux = "wait for number";
    } else if (flag == "edge_type") {
        edge_type = input;
        setEdge_Type(input);
        //cout << input << " is an edge_type! \n";
    } else if (flag == "node_comment") {
        node_comment = input;
        //cout << input << " is an node_comment! \n";
    } else if (flag == "number" && flagaux == "wait for number") {
        int id = stod(input);
        //cout << "I: " << input;
        myfile >> input;
        double x = stod(input);
        //cout << "\t X: " << input;
        myfile >> input;
        double y = stod(input);
        //cout << "\t Y: " << input << "\n";
        citiescoord.push_back(City(id, x, y));
    }
}

// Assembly:
subq $0xd8, %rsp
movq %rsi, 0x20(%rsp)
movq %rdi, %rax
movq 0x20(%rsp), %rdi
movq %rdi, 0x28(%rsp)
movq %rdx, 0x30(%rsp)
movq %rax, 0xd0(%rsp)
movq %rdi, 0xc8(%rsp)
movq %rdx, 0xc0(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x38(%rsp)
leaq 0x57ff2(%rip), %rsi     # 0x748fc
callq 0x1e060
testb $0x1, %al
jne 0x1c915
jmp 0x1c929
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdi
callq 0x6070
jmp 0x1cbd9
movq 0x28(%rsp), %rdi
leaq 0x57fdb(%rip), %rsi     # 0x74910
callq 0x1e060
testb $0x1, %al
jne 0x1c940
jmp 0x1c958
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0x20, %rdi
callq 0x6070
jmp 0x1cbd7
movq 0x28(%rsp), %rdi
leaq 0x57fb6(%rip), %rsi     # 0x7491a
callq 0x1e060
testb $0x1, %al
jne 0x1c96f
jmp 0x1c9da
movq 0x30(%rsp), %rsi
leaq 0x579d9(%rip), %rdx     # 0x74354
leaq 0xa0(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x18b20
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rsi
addq $0x40, %rdi
callq 0x6620
jmp 0x1c9a2
leaq 0xa0(%rsp), %rdi
callq 0x6988
jmp 0x1cbd5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x6988
jmp 0x1cbe1
movq 0x28(%rsp), %rdi
leaq 0x57f1b(%rip), %rsi     # 0x74901
callq 0x1e060
testb $0x1, %al
jne 0x1c9f1
jmp 0x1ca3e
movq 0x38(%rsp), %rax
movq 0x30(%rsp), %rdi
addq $0x2e8, %rax            # imm = 0x2E8
movq %rax, 0x10(%rsp)
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x9460
movq 0x10(%rsp), %rdi
movslq %eax, %rsi
callq 0x1e0c0
movq 0x38(%rsp), %rdi
addq $0xc0, %rdi
leaq 0x57eee(%rip), %rsi     # 0x74922
callq 0x6680
jmp 0x1cbd3
movq 0x28(%rsp), %rdi
leaq 0x57ec1(%rip), %rsi     # 0x7490b
callq 0x1e060
testb $0x1, %al
jne 0x1ca55
jmp 0x1cabf
movq 0x38(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x60, %rdi
callq 0x6070
movq 0x30(%rsp), %rsi
leaq 0x70(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x6200
movq 0x38(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x1cbf0
jmp 0x1ca8d
leaq 0x70(%rsp), %rdi
callq 0x6988
jmp 0x1cbd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x6988
jmp 0x1cbe1
movq 0x28(%rsp), %rdi
leaq 0x57e4a(%rip), %rsi     # 0x74915
callq 0x1e060
testb $0x1, %al
jne 0x1cad6
jmp 0x1caf1
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0x80, %rdi
callq 0x6070
jmp 0x1cbcf
movq 0x28(%rsp), %rdi
leaq 0x57e2e(%rip), %rsi     # 0x7492b
callq 0x1e060
testb $0x1, %al
jne 0x1cb0b
jmp 0x1cbcd
movq 0x38(%rsp), %rdi
addq $0xc0, %rdi
leaq 0x57e04(%rip), %rsi     # 0x74922
callq 0x1e060
testb $0x1, %al
jne 0x1cb2c
jmp 0x1cbcd
movq 0x30(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x94b0
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdi
cvttsd2si %xmm0, %eax
movl %eax, 0x6c(%rsp)
addq $0xe0, %rdi
callq 0x6610
movq 0x30(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x94b0
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdi
movsd %xmm0, 0x60(%rsp)
addq $0xe0, %rdi
callq 0x6610
movq 0x30(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x94b0
movq 0x38(%rsp), %rax
movsd %xmm0, 0x58(%rsp)
addq $0x2e8, %rax            # imm = 0x2E8
movq %rax, (%rsp)
movl 0x6c(%rsp), %esi
movsd 0x60(%rsp), %xmm0
movsd 0x58(%rsp), %xmm1
leaq 0x40(%rsp), %rdi
callq 0x1bb10
movq (%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1e1d0
jmp 0x1cbcf
jmp 0x1cbd1
jmp 0x1cbd3
jmp 0x1cbd5
jmp 0x1cbd7
jmp 0x1cbd9
addq $0xd8, %rsp
retq
movq 0x98(%rsp), %rdi
callq 0x6850
nop