// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x2b0, %rsp            # imm = 0x2B0
movq %rsi, %r14
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
andq $0x0, 0x30(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x2210
leaq 0x60(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x3bba(%rip), %rsi      # 0x608c
movq %rsp, %rdi
leaq 0x38(%rsp), %rdx
callq 0x315c
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x1, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3b8f(%rip), %rsi      # 0x6090
movq %rsp, %rdi
leaq 0x38(%rsp), %rdx
callq 0x315c
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x2, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3b64(%rip), %rsi      # 0x6094
movq %rsp, %rdi
leaq 0x38(%rsp), %rdx
callq 0x315c
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x3, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3b38(%rip), %rsi      # 0x6097
movq %rsp, %rdi
leaq 0x38(%rsp), %rdx
callq 0x315c
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x4, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3b11(%rip), %rsi      # 0x609f
movq %rsp, %rdi
leaq 0x38(%rsp), %rdx
callq 0x315c
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x5, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3ae8(%rip), %rsi      # 0x60a5
movq %rsp, %rdi
leaq 0x38(%rsp), %rdx
callq 0x315c
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x6, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3abd(%rip), %rsi      # 0x60a9
movq %rsp, %rdi
leaq 0x38(%rsp), %rdx
callq 0x315c
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x7, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3a92(%rip), %rsi      # 0x60ad
movq %rsp, %rdi
leaq 0x38(%rsp), %rdx
callq 0x315c
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x8, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3a6a(%rip), %rsi      # 0x60b4
leaq 0x88(%rsp), %rdi
callq 0x321b
leaq 0x20(%rsp), %rdi
leaq 0x88(%rsp), %rdx
pushq $0x1
popq %rcx
movq %r14, %rsi
callq 0x3197
leaq 0x88(%rsp), %rdi
callq 0x3246
movq (%r14), %rsi
leaq 0xa0(%rsp), %rdi
pushq $0x8
popq %rdx
callq 0x21a0
movq 0xa0(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0xc0(%rsp,%rax)
jne 0x284b
movq 0x28(%rsp), %rdi
addq $-0x40, %rdi
leaq 0x39d3(%rip), %rsi      # 0x608c
callq 0x325a
testb %al, %al
je 0x274d
movq 0x28(%rsp), %rsi
addq $-0x40, %rsi
leaq 0x39de(%rip), %rdx      # 0x60b4
leaq 0x38(%rsp), %rdi
callq 0x3363
movq 0x28(%rsp), %rdx
addq $-0x20, %rdx
movq %rsp, %rdi
leaq 0x38(%rsp), %rsi
callq 0x3344
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x20d0
leaq 0x38(%rsp), %rdi
callq 0x20d0
addl $-0x2, %r15d
cmpl $0x6, %r15d
ja 0x288b
leaq 0x38f3(%rip), %rax      # 0x6020
movslq (%rax,%r15,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x39bb(%rip), %rsi      # 0x60f8
movq %rsp, %rdi
movq %r14, %rdx
callq 0x32ce
jmp 0x2807
movq 0x28(%rsp), %rsi
addq $-0x20, %rsi
leaq 0x58(%rsp), %rdi
callq 0x3268
movl (%rax), %eax
decl %eax
cmpl $0x6, %eax
ja 0x286e
leaq 0x3890(%rip), %rcx      # 0x6004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x394b(%rip), %rsi      # 0x60cf
movq %rsp, %rdi
movq %r14, %rdx
callq 0x32ce
jmp 0x2807
leaq 0x3950(%rip), %rsi      # 0x60e8
movq %rsp, %rdi
movq %r14, %rdx
callq 0x32ce
jmp 0x2807
leaq 0x3945(%rip), %rsi      # 0x60f1
movq %rsp, %rdi
movq %r14, %rdx
callq 0x32ce
jmp 0x2807
leaq 0x391b(%rip), %rsi      # 0x60db
movq %rsp, %rdi
movq %r14, %rdx
callq 0x32ce
jmp 0x2807
leaq 0x393a(%rip), %rsi      # 0x610e
movq %rsp, %rdi
movq %r14, %rdx
callq 0x32ce
jmp 0x2807
leaq 0x3931(%rip), %rsi      # 0x6119
movq %rsp, %rdi
movq %r14, %rdx
callq 0x32ce
jmp 0x2807
leaq 0x3907(%rip), %rsi      # 0x6103
movq %rsp, %rdi
movq %r14, %rdx
callq 0x32ce
movq %rsp, %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2230
movq %r14, %rdi
callq 0x20d0
leaq 0x58(%rsp), %rdi
callq 0x33e8
leaq 0xa0(%rsp), %rdi
callq 0x2070
leaq 0x20(%rsp), %rdi
callq 0x339c
addq $0x2b0, %rsp            # imm = 0x2B0
popq %rbx
popq %r14
popq %r15
retq
movq 0x7786(%rip), %rdi      # 0x9fd8
leaq 0x385d(%rip), %rsi      # 0x60b6
callq 0x21b0
movq %rax, %rdi
callq 0x20f0
pushq $0x1
popq %rdi
callq 0x2220
movq 0x7763(%rip), %rdi      # 0x9fd8
leaq 0x383a(%rip), %rsi      # 0x60b6
callq 0x21b0
movq %rax, %rdi
callq 0x20f0
jmp 0x2866
movq 0x7746(%rip), %rdi      # 0x9fd8
leaq 0x381d(%rip), %rsi      # 0x60b6
callq 0x21b0
movq %rax, %rdi
callq 0x20f0
jmp 0x2866
jmp 0x2913
jmp 0x2913
jmp 0x2913
jmp 0x2913
jmp 0x2913
jmp 0x2913
jmp 0x2913
jmp 0x2913
movq %rax, %rbx
movq %rsp, %rdi
callq 0x20d0
jmp 0x28c8
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x2905
jmp 0x2913
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x3246
jmp 0x2916
jmp 0x28ff
jmp 0x2913
jmp 0x28ff
jmp 0x2913
jmp 0x28ff
jmp 0x2913
jmp 0x28ff
jmp 0x2913
jmp 0x28ff
jmp 0x2913
jmp 0x28ff
jmp 0x2913
jmp 0x28ff
jmp 0x2913
movq %rax, %rbx
movq %rsp, %rdi
callq 0x20d0
jmp 0x2916
jmp 0x2913
movq %rax, %rbx
jmp 0x292d
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x33e8
leaq 0xa0(%rsp), %rdi
callq 0x2070
leaq 0x20(%rsp), %rdi
callq 0x339c
movq %rbx, %rdi
callq 0x22f0
nop