// File: /workspace/github_cpp_makefile_star2_O1/7bao[P]TarEverything/./tareverything.h
// Function: Tareverything::write_para(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void Tareverything::write_para(string& path_and_filename) {
    vector<string> fields;
    int suffpoint;
    const int SINGLE = 2;
    const int DOUBLE = 3;
    fstream _file;
    map<string, int> suffname;
    suffname["tar"] = tar; 
    suffname["tar.gz"] = tar_gz; 
    suffname["gz"] = gz; 
    suffname["tar.bz2"] = tar_bz2; 
    suffname["tar.Z"] = tar_Z; 
    suffname["rar"] = rar;
    suffname["zip"] = zip;
    suffname["tar.xz"] = tar_xz;
    split(fields,path_and_filename,is_any_of("."));
    _file.open(path_and_filename.data(), ios::in);
    if(!_file){
        cout << "No such file or dirctory" << endl;     
        exit(1);
    } 
    if(fields[fields.size()-2]=="tar") {
        suffpoint = DOUBLE;        
    }else{
        suffpoint = SINGLE;
    }
    switch (suffpoint)
    {
        case SINGLE:
            switch(suffname[fields[fields.size()-1]])
            {
                case tar:
                    Tareverything::command = "tar –xvf " + path_and_filename;                  
                    break;
                case gz:
                    Tareverything::command = "tar –xzvf " + path_and_filename;                  
                    break;
                case rar:
                    Tareverything::command = "unrar e " + path_and_filename;                  
                    break;
                case zip: 
                    Tareverything::command = "unzip " + path_and_filename;                  
                    break; 
                default :
                    cout << "No such file or dirctory" << endl;     
                    exit(1);
            }
            break;
        case DOUBLE:
            switch(suffname[fields[fields.size()-2]+"."+fields[fields.size()-1]])
            {
                case tar_gz:
                    Tareverything::command = "tar -xzvf " + path_and_filename;                  
                    break;
                case tar_bz2:
                    Tareverything::command = "tar -xjvf "+ path_and_filename;                  
                    break;
                case tar_Z:
                    Tareverything::command = "tar -xZvf "+ path_and_filename;                  
                    break;
                case tar_xz:
                    Tareverything::command = "tar -xvf "+ path_and_filename;                  
                    break;
                default :
                    cout << "No such file or dirctory" << endl;     
                    exit(1);
            }
            break;
        default :
            cout << "no all" << endl;
            exit(1);
    }     
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2b0, %rsp            # imm = 0x2B0
movq %rsi, %r14
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x2230
leaq 0x60(%rsp), %rax
movl $0x0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x3ba7(%rip), %rsi      # 0x608c
leaq 0x3ba3(%rip), %rdx      # 0x608f
movq %rsp, %rdi
callq 0x3d46
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x38c4
movl $0x1, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x251d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x3b66(%rip), %rsi      # 0x6090
leaq 0x3b65(%rip), %rdx      # 0x6096
callq 0x3d46
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x38c4
movl $0x2, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x255f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x3b28(%rip), %rsi      # 0x6094
leaq 0x3b23(%rip), %rdx      # 0x6096
callq 0x3d46
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x38c4
movl $0x3, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x25a1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x3ae9(%rip), %rsi      # 0x6097
leaq 0x3ae9(%rip), %rdx      # 0x609e
callq 0x3d46
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x38c4
movl $0x4, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x25e3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x3aaf(%rip), %rsi      # 0x609f
leaq 0x3aad(%rip), %rdx      # 0x60a4
callq 0x3d46
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x38c4
movl $0x5, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2625
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x3a73(%rip), %rsi      # 0x60a5
leaq 0x3a6f(%rip), %rdx      # 0x60a8
callq 0x3d46
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x38c4
movl $0x6, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2667
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x3a35(%rip), %rsi      # 0x60a9
leaq 0x3a31(%rip), %rdx      # 0x60ac
callq 0x3d46
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x38c4
movl $0x7, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x26a9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x39f7(%rip), %rsi      # 0x60ad
leaq 0x39f6(%rip), %rdx      # 0x60b3
callq 0x3d46
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x38c4
movl $0x8, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x26eb
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x39c2(%rip), %rax      # 0x60b4
movq %rsp, %rsi
movq %rax, (%rsi)
leaq 0x39b6(%rip), %rax      # 0x60b5
movq %rax, 0x8(%rsi)
leaq 0x88(%rsp), %rdi
callq 0x40fa
leaq 0x20(%rsp), %rdi
leaq 0x88(%rsp), %rdx
movq %r14, %rsi
movl $0x1, %ecx
callq 0x3940
cmpq $0x11, 0x98(%rsp)
jb 0x2747
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x2747
callq 0x2260
movq (%r14), %rsi
leaq 0xa0(%rsp), %rdi
movl $0x8, %edx
callq 0x21b0
movq 0xa0(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0xc0(%rsp,%rax)
jne 0x29a4
movq 0x28(%rsp), %rdi
addq $-0x40, %rdi
leaq 0x3906(%rip), %rsi      # 0x608c
callq 0x20a0
testl %eax, %eax
je 0x27d6
movq 0x28(%rsp), %rsi
addq $-0x20, %rsi
leaq 0x58(%rsp), %rdi
callq 0x3ad4
movl (%rax), %eax
decl %eax
cmpl $0x6, %eax
ja 0x29d2
leaq 0x384e(%rip), %rcx      # 0x6004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x3909(%rip), %rsi      # 0x60cf
movq %rsp, %rdi
movq %r14, %rdx
callq 0x3b50
jmp 0x294f
movq 0x28(%rsp), %rax
leaq 0x48(%rsp), %r12
movq %r12, -0x10(%r12)
movq -0x40(%rax), %rsi
movq -0x38(%rax), %rdx
addq %rsi, %rdx
leaq 0x38(%rsp), %rdi
callq 0x3cb6
leaq 0x38b3(%rip), %rsi      # 0x60b4
leaq 0x38(%rsp), %rdi
callq 0x2330
movq 0x28(%rsp), %rax
movq -0x20(%rax), %rsi
movq -0x18(%rax), %rdx
leaq 0x38(%rsp), %rdi
callq 0x20b0
movq %r15, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2888
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x288f
leaq 0x389e(%rip), %rsi      # 0x60e8
movq %rsp, %rdi
movq %r14, %rdx
callq 0x3b50
jmp 0x294f
leaq 0x3890(%rip), %rsi      # 0x60f1
movq %rsp, %rdi
movq %r14, %rdx
callq 0x3b50
jmp 0x294f
leaq 0x3863(%rip), %rsi      # 0x60db
movq %rsp, %rdi
movq %r14, %rdx
callq 0x3b50
jmp 0x294f
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rsp, %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x58(%rsp), %rdi
callq 0x38c4
movl (%rax), %r13d
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x28cc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x28e3
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x21e0
addl $-0x2, %r13d
cmpl $0x6, %r13d
ja 0x29f8
leaq 0x3728(%rip), %rax      # 0x6020
movslq (%rax,%r13,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x37f0(%rip), %rsi      # 0x60f8
movq %rsp, %rdi
movq %r14, %rdx
callq 0x3b50
jmp 0x294f
leaq 0x37f2(%rip), %rsi      # 0x610e
movq %rsp, %rdi
movq %r14, %rdx
callq 0x3b50
jmp 0x294f
leaq 0x37e9(%rip), %rsi      # 0x6119
movq %rsp, %rdi
movq %r14, %rdx
callq 0x3b50
jmp 0x294f
leaq 0x37bf(%rip), %rsi      # 0x6103
movq %rsp, %rdi
movq %r14, %rdx
callq 0x3b50
movq %rsp, %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2250
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x2972
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x58(%rsp), %rdi
callq 0x3c3e
leaq 0xa0(%rsp), %rdi
callq 0x2080
leaq 0x20(%rsp), %rdi
callq 0x3bd8
addq $0x2b0, %rsp            # imm = 0x2B0
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq 0x662d(%rip), %rdi      # 0x8fd8
leaq 0x3704(%rip), %rsi      # 0x60b6
movl $0x18, %edx
callq 0x2220
movq 0x6615(%rip), %rdi      # 0x8fd8
callq 0x2100
movl $0x1, %edi
callq 0x2240
movq 0x65ff(%rip), %rdi      # 0x8fd8
leaq 0x36d6(%rip), %rsi      # 0x60b6
movl $0x18, %edx
callq 0x2220
movq 0x65e7(%rip), %rdi      # 0x8fd8
callq 0x2100
jmp 0x29c8
movq 0x65d9(%rip), %rdi      # 0x8fd8
leaq 0x36b0(%rip), %rsi      # 0x60b6
movl $0x18, %edx
callq 0x2220
movq 0x65c1(%rip), %rdi      # 0x8fd8
callq 0x2100
jmp 0x29c8
jmp 0x2ad9
jmp 0x2ad9
jmp 0x2ad9
jmp 0x2ad9
jmp 0x2ad9
jmp 0x2ad9
jmp 0x2ad9
jmp 0x2ad9
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2a66
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x2a66
jmp 0x2a63
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x2adc
movq 0x48(%rsp), %rsi
jmp 0x2ac8
jmp 0x2ad9
movq %rax, %rbx
cmpq $0x11, 0x98(%rsp)
jb 0x2adc
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x2adc
callq 0x2260
jmp 0x2adc
jmp 0x2ab7
jmp 0x2ad9
jmp 0x2ab7
jmp 0x2ad9
jmp 0x2ab7
jmp 0x2ad9
jmp 0x2ab7
jmp 0x2ad9
jmp 0x2ab7
jmp 0x2ad9
jmp 0x2ab7
jmp 0x2ad9
jmp 0x2ab7
jmp 0x2ad9
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2adc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x2adc
jmp 0x2ad9
movq %rax, %rbx
jmp 0x2af3
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x3c3e
leaq 0xa0(%rsp), %rdi
callq 0x2080
leaq 0x20(%rsp), %rdi
callq 0x3bd8
movq %rbx, %rdi
callq 0x2300
nop