// 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>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void Tareverything::write_para(string& path_and_filename, string& dest_path) {
    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;
    mkdir(dest_path.c_str(),S_IRUSR | S_IWUSR | S_IXUSR | S_IRWXG | S_IRWXO);
    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 + " -C " + dest_path;                
                    break;
                case gz:
                    Tareverything::command = "tar –xzvf " + path_and_filename + " -C " + dest_path;       
                    break;
                case rar:
                    Tareverything::command = "unrar e " + path_and_filename + " -C " + dest_path;                  
                    break;
                case zip: 
                    Tareverything::command = "unzip " + path_and_filename + " -C " +  dest_path;                  
                    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 + " -C " + dest_path;                
                    break;
                case tar_bz2:
                    Tareverything::command = "tar -xjvf "+ path_and_filename + " -C " + dest_path;            
                    break;
                case tar_Z:
                    Tareverything::command = "tar -xZvf "+ path_and_filename + " -C " + dest_path; 
                    break;
                case tar_xz:
                    Tareverything::command = "tar -xvf "+ path_and_filename + " -C " + dest_path;                  
                    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 %r12
pushq %rbx
subq $0x2d8, %rsp            # imm = 0x2D8
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
andq $0x0, 0x70(%rsp)
leaq 0xc8(%rsp), %rdi
callq 0x2210
leaq 0x88(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x36f6(%rip), %rsi      # 0x608c
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x315c
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x1, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x36c8(%rip), %rsi      # 0x6090
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x315c
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x2, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x369a(%rip), %rsi      # 0x6094
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x315c
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x3, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x366b(%rip), %rsi      # 0x6097
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x315c
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x4, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3641(%rip), %rsi      # 0x609f
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x315c
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x5, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x3615(%rip), %rsi      # 0x60a5
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x315c
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x6, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x35e7(%rip), %rsi      # 0x60a9
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x315c
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x7, (%rax)
movq %rsp, %rdi
callq 0x20d0
leaq 0x35b9(%rip), %rsi      # 0x60ad
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x315c
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl $0x8, (%rax)
movq %rsp, %rdi
callq 0x20d0
movq (%r14), %rdi
movl $0x1ff, %esi            # imm = 0x1FF
callq 0x20e0
leaq 0x3581(%rip), %rsi      # 0x60b4
leaq 0xb0(%rsp), %rdi
callq 0x321b
leaq 0x60(%rsp), %rdi
leaq 0xb0(%rsp), %rdx
pushq $0x1
popq %rcx
movq %r15, %rsi
callq 0x3197
leaq 0xb0(%rsp), %rdi
callq 0x3246
movq (%r15), %rsi
leaq 0xc8(%rsp), %rdi
pushq $0x8
popq %rdx
callq 0x21a0
movq 0xc8(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0xe8(%rsp,%rax)
jne 0x2e9f
movq 0x68(%rsp), %rdi
addq $-0x40, %rdi
leaq 0x34ea(%rip), %rsi      # 0x608c
callq 0x325a
testb %al, %al
je 0x2c61
movq 0x68(%rsp), %rsi
addq $-0x40, %rsi
leaq 0x34f5(%rip), %rdx      # 0x60b4
leaq 0x20(%rsp), %rdi
callq 0x3363
movq 0x68(%rsp), %rdx
addq $-0x20, %rdx
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x3344
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x30f6
movl (%rax), %r12d
movq %rsp, %rdi
callq 0x20d0
leaq 0x20(%rsp), %rdi
callq 0x20d0
addl $-0x2, %r12d
cmpl $0x6, %r12d
ja 0x2edf
leaq 0x343f(%rip), %rax      # 0x6058
movslq (%rax,%r12,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x34cf(%rip), %rsi      # 0x60f8
leaq 0x40(%rsp), %rdi
movq %r15, %rdx
callq 0x32ce
leaq 0x34e6(%rip), %rdx      # 0x6123
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x33bd
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x3344
jmp 0x2e42
movq 0x68(%rsp), %rsi
addq $-0x20, %rsi
leaq 0x80(%rsp), %rdi
callq 0x3268
movl (%rax), %eax
decl %eax
cmpl $0x6, %eax
ja 0x2ec2
leaq 0x33b1(%rip), %rcx      # 0x603c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x3434(%rip), %rsi      # 0x60cf
leaq 0x40(%rsp), %rdi
movq %r15, %rdx
callq 0x32ce
leaq 0x3474(%rip), %rdx      # 0x6123
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x33bd
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x3344
jmp 0x2e42
leaq 0x340e(%rip), %rsi      # 0x60e8
leaq 0x40(%rsp), %rdi
movq %r15, %rdx
callq 0x32ce
leaq 0x3435(%rip), %rdx      # 0x6123
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x33bd
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x3344
jmp 0x2e42
leaq 0x33d8(%rip), %rsi      # 0x60f1
leaq 0x40(%rsp), %rdi
movq %r15, %rdx
callq 0x32ce
leaq 0x33f6(%rip), %rdx      # 0x6123
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x33bd
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x3344
jmp 0x2e42
leaq 0x3383(%rip), %rsi      # 0x60db
leaq 0x40(%rsp), %rdi
movq %r15, %rdx
callq 0x32ce
leaq 0x33b7(%rip), %rdx      # 0x6123
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x33bd
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x3344
jmp 0x2e42
leaq 0x3377(%rip), %rsi      # 0x610e
leaq 0x40(%rsp), %rdi
movq %r15, %rdx
callq 0x32ce
leaq 0x3378(%rip), %rdx      # 0x6123
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x33bd
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x3344
jmp 0x2e42
leaq 0x3346(%rip), %rsi      # 0x6119
leaq 0x40(%rsp), %rdi
movq %r15, %rdx
callq 0x32ce
leaq 0x333c(%rip), %rdx      # 0x6123
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x33bd
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x3344
jmp 0x2e42
leaq 0x32f4(%rip), %rsi      # 0x6103
leaq 0x40(%rsp), %rdi
movq %r15, %rdx
callq 0x32ce
leaq 0x3300(%rip), %rdx      # 0x6123
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x33bd
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x3344
movq %rsp, %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2230
movq %r14, %rdi
callq 0x20d0
leaq 0x20(%rsp), %rdi
callq 0x20d0
leaq 0x40(%rsp), %rdi
callq 0x20d0
leaq 0x80(%rsp), %rdi
callq 0x33e8
leaq 0xc8(%rsp), %rdi
callq 0x2070
leaq 0x60(%rsp), %rdi
callq 0x339c
addq $0x2d8, %rsp            # imm = 0x2D8
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq 0x7132(%rip), %rdi      # 0x9fd8
leaq 0x3209(%rip), %rsi      # 0x60b6
callq 0x21b0
movq %rax, %rdi
callq 0x20f0
pushq $0x1
popq %rdi
callq 0x2220
movq 0x710f(%rip), %rdi      # 0x9fd8
leaq 0x31e6(%rip), %rsi      # 0x60b6
callq 0x21b0
movq %rax, %rdi
callq 0x20f0
jmp 0x2eba
movq 0x70f2(%rip), %rdi      # 0x9fd8
leaq 0x31c9(%rip), %rsi      # 0x60b6
callq 0x21b0
movq %rax, %rdi
callq 0x20f0
jmp 0x2eba
jmp 0x2f21
jmp 0x2f21
jmp 0x2f21
jmp 0x2f21
jmp 0x2f38
jmp 0x2f38
jmp 0x2f38
jmp 0x2f38
jmp 0x2fa5
jmp 0x2fa5
jmp 0x2fa5
jmp 0x2f21
jmp 0x2f21
jmp 0x2f21
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x20d0
jmp 0x2f3b
jmp 0x2fa5
jmp 0x2f38
jmp 0x2f38
jmp 0x2f38
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
jmp 0x2f97
jmp 0x2fa5
jmp 0x2fa5
jmp 0x2fa5
jmp 0x2fa5
movq %rax, %rbx
movq %rsp, %rdi
callq 0x20d0
jmp 0x2f5a
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
jmp 0x2f97
jmp 0x2fa5
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0x3246
jmp 0x2fa8
jmp 0x2f91
jmp 0x2fa5
jmp 0x2f91
jmp 0x2fa5
jmp 0x2f91
jmp 0x2fa5
jmp 0x2f91
jmp 0x2fa5
jmp 0x2f91
jmp 0x2fa5
jmp 0x2f91
jmp 0x2fa5
jmp 0x2f91
jmp 0x2fa5
movq %rax, %rbx
movq %rsp, %rdi
callq 0x20d0
jmp 0x2fa8
jmp 0x2fa5
movq %rax, %rbx
jmp 0x2fc2
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x33e8
leaq 0xc8(%rsp), %rdi
callq 0x2070
leaq 0x60(%rsp), %rdi
callq 0x339c
movq %rbx, %rdi
callq 0x22f0