Function at 0x401579
Capabilities:
Delete file

Disassembly:
push rbp
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x50], rcx
mov eax, edx
mov byte [rbp + 0x58], al
mov rcx, qword [rbp + 0x50]
call method.std::string.c_str___const
mov rcx, rax
call dbg.opendir
mov qword [rbp + 8], rax
cmp qword [rbp + 8], 0
sete al
test al, al
je 0x401620
mov rax, qword [sym.imp.msvcrt.dll__errno]
call rax
mov ebx, dword [rax]
lea rdx, str._ERROR:
mov rcx, qword [0x0048d750]
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov edx, ebx
mov rcx, rax
call method.std::ostream.operator___int_
lea rdx, str.___Couldnt_open
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [rbp + 0x50]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::basic_string_char__std::char_traits_char___std::allocator_char____const
lea rdx, [0x0048901b]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x4019ab
jmp 0x4018aa
mov ebx, 0
mov esi, 0
mov edi, 0
lea rax, [rbp - 0x41]
mov rcx, rax
call fcn.00447240
mov r12d, 1
lea rdx, [rbp - 0x41]
lea rax, [rbp - 0x50]
mov r8, rdx
lea rdx, [0x0048901b]
mov rcx, rax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
mov ebx, 1
mov rax, qword [rbp]
lea rcx, [rax + 8]
lea rax, [rbp - 0x50]
mov rdx, rax
call method.bool_std::operator__char__std::char_traits_char___std.allocator_char____char_const__std::basic_string_char__std::char_traits_char___std::allocator_char____const_
test al, al
je 0x4016cd
lea rax, [rbp - 0x31]
mov rcx, rax
call fcn.00447240
mov esi, 1
lea rdx, [rbp - 0x31]
lea rax, [rbp - 0x40]
mov r8, rdx
lea rdx, [0x0048901d]
mov rcx, rax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
mov edi, 1
mov rax, qword [rbp]
lea rcx, [rax + 8]
lea rax, [rbp - 0x40]
mov rdx, rax
call method.bool_std::operator__char__std::char_traits_char___std.allocator_char____char_const__std::basic_string_char__std::char_traits_char___std::allocator_char____const_
test al, al
je 0x4016cd
mov r13d, 1
jmp 0x4016d3
mov r13d, 0
test dil, dil
je 0x4016e4
lea rax, [rbp - 0x40]
mov rcx, rax
call fcn.004508d0
test sil, sil
je 0x4016f5
lea rax, [rbp - 0x31]
mov rcx, rax
call sym.std::allocator_char_::allocator__
test bl, bl
je 0x401705
lea rax, [rbp - 0x50]
mov rcx, rax
call fcn.004508d0
test r12b, r12b
je 0x401717
nop
lea rax, [rbp - 0x41]
mov rcx, rax
call sym.std::allocator_char_::allocator__
test r13b, r13b
je 0x4018aa
mov ebx, 0
mov rax, qword [rbp]
lea rdx, [rax + 8]
lea rax, [rbp - 0x30]
mov r8, rdx
mov rdx, qword [rbp + 0x50]
mov rcx, rax
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
mov ebx, 1
lea rax, [rbp - 0x30]
mov rcx, rax
call sym.isDir_std::string_
test al, al
je 0x401762
cmp byte [rbp + 0x58], 0
je 0x401762
mov esi, 1
jmp 0x401767
mov esi, 0
test bl, bl
je 0x401778
nop
lea rax, [rbp - 0x30]
mov rcx, rax
call fcn.004508d0
test sil, sil
je 0x40182e
mov rax, qword [rbp]
lea rbx, [rax + 8]
lea rdx, str._DIR__t
mov rcx, qword [0x0048d750]
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [rbp + 0x50]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::basic_string_char__std::char_traits_char___std::allocator_char____const
mov rdx, rbx
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea rdx, [0x00489027]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp]
lea rdx, [rax + 8]
lea rax, [rbp - 0x10]
mov r8, rdx
mov rdx, qword [rbp + 0x50]
mov rcx, rax
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rax, [rbp - 0x20]
lea rdx, [rbp - 0x10]
lea r8, [0x00489027]
mov rcx, rax
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rax, [rbp - 0x20]
mov edx, 1
mov rcx, rax
call sym.listFiles_std::string__bool_
lea rax, [rbp - 0x20]
mov rcx, rax
call fcn.004508d0
lea rax, [rbp - 0x10]
mov rcx, rax
call fcn.004508d0
jmp 0x4018aa
mov rax, qword [rbp]
lea rbx, [rax + 8]
lea rdx, str._FILE__t
mov rcx, qword [0x0048d750]
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [rbp + 0x50]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::basic_string_char__std::char_traits_char___std::allocator_char____const
mov rdx, rbx
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp]
lea rdx, [rax + 8]
lea rax, [rbp - 0x60]
mov r8, rdx
mov rdx, qword [rbp + 0x50]
mov rcx, rax
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rax, [rbp - 0x60]
mov rcx, rax
call method.std::string.c_str___const
mov rcx, rax
call sym.remove
lea rax, [rbp - 0x60]
mov rcx, rax
call fcn.004508d0
mov rax, qword [rbp + 8]
mov rcx, rax
call dbg.readdir
mov qword [rbp], rax
cmp qword [rbp], 0
setne al
test al, al
jne 0x401625
mov rax, qword [rbp + 8]
mov rcx, rax
call dbg.closedir
jmp 0x4019ab
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop rbp
ret