Function at 0x405690
Capabilities:
Delete directory

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
mov rbx, rcx
mov rsi, rdx
mov rdi, r8
mov qword [rsp + 0x158], r9
call fcn.0041f950
cmp rax, 0
jg 0x4056e3
je 0x405a30
mov dword [0x0052f164], 1
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rdi
mov rcx, rbx
call fcn.00429520
test rax, rax
mov r15, rax
je 0x405e70
mov ecx, dword [0x0052f0c4]
cmp ecx, 0x10
ja 0x405723
mov eax, 1
shl rax, cl
test eax, 0x22a
jne 0x405e20
test eax, 0x10000
jne 0x405f30
mov eax, dword [0x0052f0c0]
cmp eax, 1
je 0x405d30
cmp eax, 2
je 0x405a44
mov edx, 2
mov rcx, r15
call fcn.004274a0
test eax, eax
je 0x405d40
cmp qword [rsp + 0x158], 0
mov dword [rsp + 0x68], 1
je 0x405a70
mov rdx, qword [rsp + 0x158]
mov rcx, rsi
call fcn.004295c0
test rax, rax
mov qword [rsp + 0x40], rax
je 0x405a51
mov rdi, qword [rsp + 0x40]
lea rdx, [r15 + 8]
mov r8d, dword [0x004db020]
mov rcx, rdi
call fcn.00402170
mov rcx, qword [rdi]
call fcn.0041f8d0
test rax, rax
mov qword [rsp + 0x38], rax
je 0x406155
cmp dword [0x0052f14c], 7
je 0x405ea0
mov rdi, qword [rsp + 0x40]
movzx edx, byte [r15 + 0x43]
movzx eax, byte [rdi + 0x43]
and edx, 0xffffff80
mov byte [rsp + 0x28], al
and eax, 0x7f
or eax, edx
mov byte [rdi + 0x43], al
mov rbx, qword [rsp + 0x40]
movzx edx, byte [r15 + 0x44]
movzx eax, byte [rbx + 0x44]
and edx, 1
mov byte [rsp + 0x28], al
and eax, 0xfffffffe
or eax, edx
mov byte [rbx + 0x44], al
mov esi, dword [0x004db030]
test esi, esi
je 0x40580b
or dword [rbx + 0x40], 0x40000
xor edx, edx
mov rcx, r15
call fcn.00420e90
movzx edx, byte [r15 + 0x40]
mov rcx, qword [rsp + 0x40]
mov rbx, rax
and edx, 7
call fcn.004274b0
test eax, eax
je 0x405eb0
mov rax, qword [rsp + 0x40]
mov edx, dword [0x0052f164]
add rax, 0xd8
test edx, edx
mov qword [rsp + 0x30], rax
jne 0x406138
xor edi, edi
test rbx, rbx
je 0x406138
lea rax, [rsp + 0x70]
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x50], rax
nop word [rax + rax]
mov rcx, qword [rbx]
call fcn.0041fd00
test eax, eax
je 0x406090
mov r8, qword [rbx]
xor r9d, r9d
mov rcx, qword [rsp + 0x38]
lea rdx, [0x004e4365]
call fcn.004cbee0
mov rdx, qword [rsp + 0x28]
mov rbp, rax
mov rcx, rax
call qword [sym.imp.msvcrt.dll__stat64]
test eax, eax
jns 0x405bd0
mov r11d, dword [0x0052f168]
test r11d, r11d
je 0x405c2b
mov rax, qword [rbx + 8]
mov rcx, rbx
mov rdx, qword [rsp + 0x28]
call qword [rax + 0x1e0]
test eax, eax
mov r15d, eax
jne 0x405c70
mov ecx, 0x18
call fcn.004d1690
mov edx, 1
mov rcx, rbx
mov qword [rax + 8], rbp
mov rsi, rax
mov qword [rax], rdi
mov qword [rax + 0x10], 0
call fcn.004274a0
test eax, eax
je 0x405a90
mov r10d, dword [rsp + 0x68]
test r10d, r10d
jne 0x405c33
mov rax, qword [rbx + 8]
mov rcx, rbp
mov rdx, qword [rax]
call fcn.004295c0
test rax, rax
mov r14, rax
je 0x405c4f
mov r8, qword [rsp + 0x160]
mov rdx, r14
mov rcx, rbx
call fcn.004030e0
test eax, eax
jne 0x405c84
mov rcx, rbx
call fcn.00423c90
test eax, eax
je 0x405ac0
mov rcx, r14
mov r15, qword [rsp + 0x48]
call fcn.004296f0
test eax, eax
jne 0x40599d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call fcn.0041fbc0
mov dword [0x0052f164], 1
mov rcx, rbp
call sub.msvcrt.dll__unlink
mov dword [0x0052f164], 1
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov qword [rax], 0
mov rbx, qword [rcx]
call fcn.004296f0
test eax, eax
je 0x405f80
mov rcx, r15
mov rbx, qword [r15]
call fcn.004296f0
test eax, eax
je 0x405f60
test rsi, rsi
jne 0x405a06
jmp 0x405a20
call fcn.004296f0
mov rcx, qword [rsi + 8]
call sub.msvcrt.dll__unlink
mov rsi, qword [rsi]
test rsi, rsi
je 0x405a20
mov rcx, qword [rsi + 0x10]
test rcx, rcx
jne 0x4059f0
mov rcx, qword [rsi + 8]
call sub.msvcrt.dll__rmdir
mov rsi, qword [rsi]
test rsi, rsi
jne 0x405a06
mov rcx, qword [rsp + 0x38]
call sub.msvcrt.dll__rmdir
jmp 0x4056cf
lea rcx, str.error:_the_input_file__s_is_empty
mov rdx, rbx
call fcn.0041f240
jmp 0x4056c5
or dword [r15 + 0x40], 0x800000
jmp 0x40573b
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.0041fbc0
mov dword [0x0052f164], 1
jmp 0x4056cf
mov rax, qword [r15 + 8]
mov dword [rsp + 0x68], 0
mov rax, qword [rax]
mov qword [rsp + 0x158], rax
jmp 0x405767
xor r8d, r8d
xor ecx, ecx
mov rdx, rbx
lea r9, str.Unable_to_recognise_the_format_of_file
call fcn.0041fbc0
mov rdx, qword [rsp + 0x158]
mov rcx, rbp
call fcn.004295c0
test rax, rax
mov r14, rax
je 0x405c4f
mov rax, qword [rbx + 8]
mov rcx, rbx
mov rdx, qword [rsp + 0x50]
call qword [rax + 0x1e0]
test eax, eax
jne 0x405d10
mov rdi, qword [rsp + 0xc8]
test edi, edi
mov r13d, edi
js 0x405df5
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.00425e80
test eax, eax
jne 0x405e85
mov r9d, dword [0x0052f16c]
test r9d, r9d
jne 0x405fa0
mov ecx, 0x2000
call fcn.004d1690
test edi, edi
mov qword [rsp + 0x58], rax
je 0x405edb
mov dword [rsp + 0x6c], r15d
xor r12d, r12d
mov r15d, r13d
mov r13, rax
mov qword [rsp + 0x60], rsi
jmp 0x405b63
mov r8, r14
mov rdx, rsi
mov rcx, r13
call fcn.00425d40
cmp rsi, rax
jne 0x405fc2
add r12d, edi
cmp r15d, r12d
jle 0x405ed1
mov edi, r15d
mov eax, 0x2000
mov r8, rbx
sub edi, r12d
mov rcx, r13
cmp edi, 0x2000
cmovg edi, eax
movsxd rsi, edi
mov rdx, rsi
call fcn.00425cd0
cmp rsi, rax
je 0x405b40
xor ecx, ecx
xor r9d, r9d
xor r8d, r8d
mov r15, qword [rsp + 0x48]
mov rdx, rbx
mov rsi, qword [rsp + 0x60]
call fcn.0041fbc0
mov rcx, qword [rsp + 0x58]
call fcn.004d4f88
mov rcx, r14
call fcn.00429640
test eax, eax
je 0x405983
jmp 0x40599d
mov rcx, rbp
call fcn.0041f8d0
test rax, rax
mov rbp, rax
je 0x406100
mov ecx, 0x18
call fcn.004d1690
mov r8, qword [rbx]
xor r9d, r9d
mov rcx, rbp
mov qword [rax + 8], rbp
lea rdx, [0x004e4365]
mov rsi, rax
mov qword [rax], rdi
mov rdi, rsi
mov qword [rax + 0x10], 0
call fcn.004cbee0
mov r11d, dword [0x0052f168]
mov rbp, rax
test r11d, r11d
jne 0x4058d0
xor r15d, r15d
jmp 0x4058ed
mov rdx, qword [rsp + 0x158]
mov rcx, rbp
call fcn.004295c0
test rax, rax
mov r14, rax
jne 0x405947
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call fcn.0041fbc0
mov dword [0x0052f164], 1
jmp 0x4059e3
mov rdx, qword [rbx]
lea rcx, str.internal_stat_error_on__s
call fcn.0041f240
jmp 0x4058ed
mov rcx, r14
call fcn.004296f0
test eax, eax
je 0x405f0b
mov r8d, dword [0x0052f168]
test r8d, r8d
je 0x405ca9
test r15d, r15d
je 0x405e55
mov rdx, qword [rsp + 0x158]
mov rcx, rbp
call fcn.00429520
mov rdi, qword [rsp + 0x30]
mov rdx, rbx
mov rcx, qword [rsp + 0x48]
mov qword [rsi + 0x10], rax
mov qword [rdi], rax
add rax, 0xd0
mov rdi, rsi
mov qword [rsp + 0x30], rax
call fcn.00420e90
mov rcx, rbx
mov rbp, rax
call fcn.004296f0
mov ecx, dword [0x0052f164]
test ecx, ecx
sete dl
test rbp, rbp
setne al
test dl, al
je 0x40612e
mov rbx, rbp
jmp 0x405880
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov r15, qword [rsp + 0x48]
xor ecx, ecx
call fcn.0041fbc0
jmp 0x405bb1
or dword [r15 + 0x40], 0x1800000
jmp 0x40573b
lea r8, [rsp + 0x70]
mov edx, 1
mov rcx, r15
call fcn.00426c40
test eax, eax
je 0x405ff0
cmp qword [rsp + 0x158], 0
je 0x406060
mov rdx, qword [rsp + 0x158]
mov rcx, rsi
call fcn.004295c0
test rax, rax
mov rdi, rax
je 0x405a51
mov r8d, dword [0x004db020]
lea rdx, [r15 + 8]
mov rcx, rax
call fcn.00402170
mov r8, qword [rsp + 0x160]
mov rdx, rdi
mov rcx, r15
call fcn.004030e0
test eax, eax
je 0x405f40
mov eax, dword [0x0052f164]
test eax, eax
jne 0x405f4a
mov rcx, rdi
call fcn.004296f0
test eax, eax
sete al
test al, al
je 0x406030
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [0x0052f164], 1
mov rcx, rsi
call fcn.0041fbc0
jmp 0x4056cf
mov rcx, rbx
mov r15, qword [rsp + 0x48]
call fcn.0041fad0
lea rcx, str.stat_returns_negative_size_for___s
mov rdx, rax
call fcn.0041f240
jmp 0x405bb1
mov edx, dword [r15 + 0x40]
mov eax, edx
shr eax, 5
and eax, 0xfffff
cmp ecx, 5
je 0x406074
or eax, 0x24000
and edx, 0xfe00001f
and eax, 0xfffff
shl eax, 5
or eax, edx
mov dword [r15 + 0x40], eax
jmp 0x405723
mov rdx, qword [rsp + 0x28]
mov rcx, rbp
call fcn.00406180
jmp 0x405ca9
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.0041fbc0
jmp 0x4056c5
mov rcx, rbx
mov r15, qword [rsp + 0x48]
call fcn.0041fad0
mov rcx, rax
call fcn.0041ef00
jmp 0x405bb1
mov rax, qword [rsp + 0x40]
and byte [rax + 0x43], 0x7f
jmp 0x4057dd
mov rdx, qword [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov dword [0x0052f164], 1
call fcn.0041fbc0
jmp 0x405a20
mov r15d, dword [rsp + 0x6c]
mov rsi, qword [rsp + 0x60]
movzx edx, word [rsp + 0xb6]
mov rcx, qword [r14]
or dh, 1
movzx edx, dx
call sub.msvcrt.dll__chmod
mov rcx, qword [rsp + 0x58]
call fcn.004d4f88
mov rcx, r14
call fcn.00429640
test eax, eax
jne 0x405c94
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call fcn.0041fbc0
mov dword [0x0052f164], 1
jmp 0x405c94
or dword [r15 + 0x40], 0x100000
jmp 0x405723
mov dword [0x0052f164], 1
mov rcx, rdi
call fcn.00429640
test eax, eax
sete al
jmp 0x405dce
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [0x0052f164], 1
mov rcx, rbx
call fcn.0041fbc0
jmp 0x4059e3
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [0x0052f164], 1
mov rcx, rbx
call fcn.0041fbc0
jmp 0x4059d0
mov r12, qword [r14]
mov rcx, rbx
call fcn.0041fad0
lea rcx, str.copy_from___s__unknown__to___s__unknown__n
mov rdx, rax
mov r8, r12
call sub.msvcrt.dll_printf
jmp 0x405b12
xor ecx, ecx
xor r9d, r9d
xor r8d, r8d
mov r15, qword [rsp + 0x48]
mov rdx, r14
mov rsi, qword [rsp + 0x60]
call fcn.0041fbc0
mov rcx, qword [rsp + 0x58]
call fcn.004d4f88
jmp 0x405bb1
call fcn.00423e30
lea r8, [rsp + 0xb0]
mov edx, 3
mov rcx, r15
mov edi, eax
call fcn.00426c40
test eax, eax
je 0x4060b1
cmp edi, 0xd
jne 0x405d5a
mov rcx, qword [rsp + 0x70]
call fcn.004d4f88
jmp 0x405d5a
mov rcx, r15
call fcn.004296f0
test eax, eax
jne 0x4056cf
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [0x0052f164], 1
mov rcx, rbx
call fcn.0041fbc0
jmp 0x4056cf
mov rax, qword [r15 + 8]
mov rax, qword [rax]
mov qword [rsp + 0x158], rax
jmp 0x405d69
or ah, 0x40
and edx, 0xfe00001f
shl eax, 5
or eax, edx
mov dword [r15 + 0x40], eax
jmp 0x405723
mov rdx, qword [rbx]
lea rcx, str.illegal_pathname_found_in_archive_member:__s
mov rsi, rdi
call fcn.0041f240
mov dword [0x0052f164], 1
jmp 0x4059e3
call fcn.00423e30
cmp edi, eax
mov esi, eax
je 0x4060c3
mov ecx, edi
call fcn.00424130
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.0041fbc0
cmp edi, 0xd
je 0x40613f
cmp esi, 0xd
jne 0x4056c5
mov rcx, qword [rsp + 0xb0]
call fcn.0041f2b0
mov rcx, qword [rsp + 0xb0]
call fcn.004d4f88
jmp 0x4056c5
call qword [sym.imp.msvcrt.dll__errno]
mov rsi, rdi
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea rcx, str.cannot_create_tempdir_for_archive_copying__error:__s_
mov rdx, rax
call fcn.0041f240
mov dword [0x0052f164], 1
jmp 0x4059e3
mov r15, qword [rsp + 0x48]
jmp 0x4059af
xor esi, esi
jmp 0x4059af
mov rcx, qword [rsp + 0x70]
call fcn.0041f2b0
mov rcx, qword [rsp + 0x70]
call fcn.004d4f88
jmp 0x4060d8
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea rcx, str.cannot_create_tempdir_for_archive_copying__error:__s_
mov rdx, rax
call fcn.0041f210
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop