// File: 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 %rbp
movq %rsp, %rbp
subq $0x630, %rsp            # imm = 0x630
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x528(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x54b0
movl $0x2, -0x30(%rbp)
movl $0x3, -0x34(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x3340
jmp 0x3663
leaq -0x288(%rbp), %rdi
callq 0x54d0
leaq -0x2a9(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x3450
movq -0x530(%rbp), %rdx
leaq 0xa9fc(%rip), %rsi      # 0xe08c
leaq -0x2a8(%rbp), %rdi
callq 0x55d0
jmp 0x369e
leaq -0x288(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x54f0
movq %rax, -0x538(%rbp)
jmp 0x36ba
movq -0x538(%rbp), %rax
movl $0x1, (%rax)
leaq -0x2a8(%rbp), %rdi
callq 0x31a0
leaq -0x2a9(%rbp), %rdi
callq 0x3300
leaq -0x2d1(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x3450
movq -0x540(%rbp), %rdx
leaq 0xa990(%rip), %rsi      # 0xe090
leaq -0x2d0(%rbp), %rdi
callq 0x55d0
jmp 0x370e
leaq -0x288(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x54f0
movq %rax, -0x548(%rbp)
jmp 0x372a
movq -0x548(%rbp), %rax
movl $0x2, (%rax)
leaq -0x2d0(%rbp), %rdi
callq 0x31a0
leaq -0x2d1(%rbp), %rdi
callq 0x3300
leaq -0x2f9(%rbp), %rdi
movq %rdi, -0x550(%rbp)
callq 0x3450
movq -0x550(%rbp), %rdx
leaq 0xa924(%rip), %rsi      # 0xe094
leaq -0x2f8(%rbp), %rdi
callq 0x55d0
jmp 0x377e
leaq -0x288(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x54f0
movq %rax, -0x558(%rbp)
jmp 0x379a
movq -0x558(%rbp), %rax
movl $0x3, (%rax)
leaq -0x2f8(%rbp), %rdi
callq 0x31a0
leaq -0x2f9(%rbp), %rdi
callq 0x3300
leaq -0x321(%rbp), %rdi
movq %rdi, -0x560(%rbp)
callq 0x3450
movq -0x560(%rbp), %rdx
leaq 0xa8b7(%rip), %rsi      # 0xe097
leaq -0x320(%rbp), %rdi
callq 0x55d0
jmp 0x37ee
leaq -0x288(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x54f0
movq %rax, -0x568(%rbp)
jmp 0x380a
movq -0x568(%rbp), %rax
movl $0x4, (%rax)
leaq -0x320(%rbp), %rdi
callq 0x31a0
leaq -0x321(%rbp), %rdi
callq 0x3300
leaq -0x349(%rbp), %rdi
movq %rdi, -0x570(%rbp)
callq 0x3450
movq -0x570(%rbp), %rdx
leaq 0xa84f(%rip), %rsi      # 0xe09f
leaq -0x348(%rbp), %rdi
callq 0x55d0
jmp 0x385e
leaq -0x288(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x54f0
movq %rax, -0x578(%rbp)
jmp 0x387a
movq -0x578(%rbp), %rax
movl $0x5, (%rax)
leaq -0x348(%rbp), %rdi
callq 0x31a0
leaq -0x349(%rbp), %rdi
callq 0x3300
leaq -0x371(%rbp), %rdi
movq %rdi, -0x580(%rbp)
callq 0x3450
movq -0x580(%rbp), %rdx
leaq 0xa7e5(%rip), %rsi      # 0xe0a5
leaq -0x370(%rbp), %rdi
callq 0x55d0
jmp 0x38ce
leaq -0x288(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x54f0
movq %rax, -0x588(%rbp)
jmp 0x38ea
movq -0x588(%rbp), %rax
movl $0x6, (%rax)
leaq -0x370(%rbp), %rdi
callq 0x31a0
leaq -0x371(%rbp), %rdi
callq 0x3300
leaq -0x399(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0x3450
movq -0x590(%rbp), %rdx
leaq 0xa779(%rip), %rsi      # 0xe0a9
leaq -0x398(%rbp), %rdi
callq 0x55d0
jmp 0x393e
leaq -0x288(%rbp), %rdi
leaq -0x398(%rbp), %rsi
callq 0x54f0
movq %rax, -0x598(%rbp)
jmp 0x395a
movq -0x598(%rbp), %rax
movl $0x7, (%rax)
leaq -0x398(%rbp), %rdi
callq 0x31a0
leaq -0x399(%rbp), %rdi
callq 0x3300
leaq -0x3c1(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x3450
movq -0x5a0(%rbp), %rdx
leaq 0xa70d(%rip), %rsi      # 0xe0ad
leaq -0x3c0(%rbp), %rdi
callq 0x55d0
jmp 0x39ae
leaq -0x288(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x54f0
movq %rax, -0x5a8(%rbp)
jmp 0x39ca
movq -0x5a8(%rbp), %rax
movl $0x8, (%rax)
leaq -0x3c0(%rbp), %rdi
callq 0x31a0
leaq -0x3c1(%rbp), %rdi
callq 0x3300
movq -0x10(%rbp), %rax
movq %rax, -0x5b0(%rbp)
leaq 0xa6b3(%rip), %rsi      # 0xe0b4
leaq -0x3e0(%rbp), %rdi
callq 0x5750
jmp 0x3a0f
movq -0x5b0(%rbp), %rsi
leaq -0x28(%rbp), %rdi
leaq -0x3e0(%rbp), %rdx
movl $0x1, %ecx
callq 0x5680
jmp 0x3a2d
leaq -0x3e0(%rbp), %rdi
callq 0x57a0
movq -0x10(%rbp), %rdi
callq 0x3170
movq %rax, %rsi
leaq -0x248(%rbp), %rdi
movl $0x8, %edx
callq 0x3280
jmp 0x3a58
movq -0x248(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x248(%rbp,%rax), %rdi
callq 0x3120
movb %al, -0x5b1(%rbp)
jmp 0x3a78
movb -0x5b1(%rbp), %al
testb $0x1, %al
jne 0x3a87
jmp 0x3d2b
movq 0x1154a(%rip), %rdi     # 0x14fd8
leaq 0xa621(%rip), %rsi      # 0xe0b6
callq 0x3290
movq %rax, -0x5c0(%rbp)
jmp 0x3aa3
movq -0x5c0(%rbp), %rdi
movq 0x11517(%rip), %rsi     # 0x14fc8
callq 0x32e0
jmp 0x3ab8
movl $0x1, %edi
callq 0x3350
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x4216
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x3b0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x31a0
leaq -0x2a9(%rbp), %rdi
callq 0x3300
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x3b4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x31a0
leaq -0x2d1(%rbp), %rdi
callq 0x3300
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x3b91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x31a0
leaq -0x2f9(%rbp), %rdi
callq 0x3300
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x3bd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x31a0
leaq -0x321(%rbp), %rdi
callq 0x3300
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x3c17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x31a0
leaq -0x349(%rbp), %rdi
callq 0x3300
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x3c5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x370(%rbp), %rdi
callq 0x31a0
leaq -0x371(%rbp), %rdi
callq 0x3300
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x3c9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x398(%rbp), %rdi
callq 0x31a0
leaq -0x399(%rbp), %rdi
callq 0x3300
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x3ce0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x3c0(%rbp), %rdi
callq 0x31a0
leaq -0x3c1(%rbp), %rdi
callq 0x3300
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x57a0
jmp 0x41fe
leaq -0x28(%rbp), %rdi
movq %rdi, -0x5d0(%rbp)
callq 0x5840
movq -0x5d0(%rbp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
callq 0x5820
movq %rax, %rdi
leaq 0xa334(%rip), %rsi      # 0xe08c
callq 0x57f0
movb %al, -0x5c1(%rbp)
jmp 0x3d65
movb -0x5c1(%rbp), %al
testb $0x1, %al
jne 0x3d71
jmp 0x3d7a
movl $0x3, -0x2c(%rbp)
jmp 0x3d81
movl $0x2, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x5d4(%rbp)
subl $0x2, %eax
je 0x3da5
jmp 0x3d91
movl -0x5d4(%rbp), %eax
subl $0x3, %eax
je 0x3f41
jmp 0x4199
leaq -0x28(%rbp), %rdi
movq %rdi, -0x5e8(%rbp)
callq 0x5840
movq -0x5e8(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x5820
movq %rax, %rsi
leaq -0x288(%rbp), %rdi
callq 0x5860
movq %rax, -0x5e0(%rbp)
jmp 0x3ddf
movq -0x5e0(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x5f0(%rbp)
subl $0x6, %eax
ja 0x3f01
movq -0x5f0(%rbp), %rax
leaq 0xa216(%rip), %rcx      # 0xe020
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdx
leaq 0xa2b1(%rip), %rsi      # 0xe0cf
leaq -0x400(%rbp), %rdi
callq 0x5940
jmp 0x3e2c
movq -0x528(%rbp), %rdi
leaq -0x400(%rbp), %rsi
callq 0x3360
leaq -0x400(%rbp), %rdi
callq 0x31a0
jmp 0x3f3c
movq -0x10(%rbp), %rdx
leaq 0xa280(%rip), %rsi      # 0xe0db
leaq -0x420(%rbp), %rdi
callq 0x5940
jmp 0x3e69
movq -0x528(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x3360
leaq -0x420(%rbp), %rdi
callq 0x31a0
jmp 0x3f3c
movq -0x10(%rbp), %rdx
leaq 0xa250(%rip), %rsi      # 0xe0e8
leaq -0x440(%rbp), %rdi
callq 0x5940
jmp 0x3ea6
movq -0x528(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x3360
leaq -0x440(%rbp), %rdi
callq 0x31a0
jmp 0x3f3c
movq -0x10(%rbp), %rdx
leaq 0xa21f(%rip), %rsi      # 0xe0f1
leaq -0x460(%rbp), %rdi
callq 0x5940
jmp 0x3ee0
movq -0x528(%rbp), %rdi
leaq -0x460(%rbp), %rsi
callq 0x3360
leaq -0x460(%rbp), %rdi
callq 0x31a0
jmp 0x3f3c
movq 0x110d0(%rip), %rdi     # 0x14fd8
leaq 0xa1a7(%rip), %rsi      # 0xe0b6
callq 0x3290
movq %rax, -0x5f8(%rbp)
jmp 0x3f1d
movq -0x5f8(%rbp), %rdi
movq 0x1109d(%rip), %rsi     # 0x14fc8
callq 0x32e0
jmp 0x3f32
movl $0x1, %edi
callq 0x3350
jmp 0x41d4
leaq -0x28(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0x5840
movq -0x600(%rbp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
callq 0x5820
movq %rax, %rsi
leaq 0xa146(%rip), %rdx      # 0xe0b4
leaq -0x4a0(%rbp), %rdi
callq 0x5aa0
jmp 0x3f7c
leaq -0x28(%rbp), %rdi
movq %rdi, -0x608(%rbp)
callq 0x5840
movq -0x608(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x5820
movq %rax, %rdx
leaq -0x480(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x5a50
jmp 0x3fb6
leaq -0x288(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x54f0
movq %rax, -0x610(%rbp)
jmp 0x3fd2
movq -0x610(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x61c(%rbp)
leaq -0x480(%rbp), %rdi
callq 0x31a0
leaq -0x4a0(%rbp), %rdi
callq 0x31a0
movl -0x61c(%rbp), %eax
addl $-0x2, %eax
movl %eax, %ecx
movq %rcx, -0x618(%rbp)
subl $0x6, %eax
ja 0x415c
movq -0x618(%rbp), %rax
leaq 0x9fe2(%rip), %rcx      # 0xe004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x405d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x480(%rbp), %rdi
callq 0x31a0
leaq -0x4a0(%rbp), %rdi
callq 0x31a0
jmp 0x41fe
movq -0x10(%rbp), %rdx
leaq 0xa07f(%rip), %rsi      # 0xe0f8
leaq -0x4c0(%rbp), %rdi
callq 0x5940
jmp 0x4087
movq -0x528(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
callq 0x3360
leaq -0x4c0(%rbp), %rdi
callq 0x31a0
jmp 0x4197
movq -0x10(%rbp), %rdx
leaq 0xa04d(%rip), %rsi      # 0xe103
leaq -0x4e0(%rbp), %rdi
callq 0x5940
jmp 0x40c4
movq -0x528(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x3360
leaq -0x4e0(%rbp), %rdi
callq 0x31a0
jmp 0x4197
movq -0x10(%rbp), %rdx
leaq 0xa01b(%rip), %rsi      # 0xe10e
leaq -0x500(%rbp), %rdi
callq 0x5940
jmp 0x4101
movq -0x528(%rbp), %rdi
leaq -0x500(%rbp), %rsi
callq 0x3360
leaq -0x500(%rbp), %rdi
callq 0x31a0
jmp 0x4197
movq -0x10(%rbp), %rdx
leaq 0x9fec(%rip), %rsi      # 0xe119
leaq -0x520(%rbp), %rdi
callq 0x5940
jmp 0x413b
movq -0x528(%rbp), %rdi
leaq -0x520(%rbp), %rsi
callq 0x3360
leaq -0x520(%rbp), %rdi
callq 0x31a0
jmp 0x4197
movq 0x10e75(%rip), %rdi     # 0x14fd8
leaq 0x9f4c(%rip), %rsi      # 0xe0b6
callq 0x3290
movq %rax, -0x628(%rbp)
jmp 0x4178
movq -0x628(%rbp), %rdi
movq 0x10e42(%rip), %rsi     # 0x14fc8
callq 0x32e0
jmp 0x418d
movl $0x1, %edi
callq 0x3350
jmp 0x41d4
movq 0x10e38(%rip), %rdi     # 0x14fd8
leaq 0x9f7c(%rip), %rsi      # 0xe123
callq 0x3290
movq %rax, -0x630(%rbp)
jmp 0x41b5
movq -0x630(%rbp), %rdi
movq 0x10e05(%rip), %rsi     # 0x14fc8
callq 0x32e0
jmp 0x41ca
movl $0x1, %edi
callq 0x3350
leaq -0x288(%rbp), %rdi
callq 0x5b20
leaq -0x248(%rbp), %rdi
callq 0x3080
leaq -0x28(%rbp), %rdi
callq 0x5b40
addq $0x630, %rsp            # imm = 0x630
popq %rbp
retq
leaq -0x288(%rbp), %rdi
callq 0x5b20
leaq -0x248(%rbp), %rdi
callq 0x3080
leaq -0x28(%rbp), %rdi
callq 0x5b40
movq -0x250(%rbp), %rdi
callq 0x3440
nopl (%rax,%rax)