Function at 0x40c636
Capabilities:
Delete directory
Delete file
Get common file path

Disassembly:
mov eax, 0x41641a
call fcn.00412f70
sub esp, 0xc20
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, 0x3e8
test esi, esi
je 0x40c68e
cmp word [esi], 0
je 0x40c68e
push 0
push esi
call dword [sym.imp.MSVCRT.dll__waccess]
pop ecx
test eax, eax
pop ecx
jne 0x40c68e
and dword [ebp + 8], eax
push esi
call dword [sym.imp.MSVCRT.dll__wremove]
test eax, eax
pop ecx
je 0x40c68e
push 0xc8
call edi
inc dword [ebp + 8]
cmp dword [ebp + 8], ebx
jl 0x40c673
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x40c6c8
cmp word [esi], 0
je 0x40c6c8
push 0
push esi
call dword [sym.imp.MSVCRT.dll__waccess]
pop ecx
test eax, eax
pop ecx
jne 0x40c6c8
and dword [ebp + 8], eax
push esi
call dword [sym.imp.MSVCRT.dll__wremove]
test eax, eax
pop ecx
je 0x40c6c8
push 0xc8
call edi
inc dword [ebp + 8]
cmp dword [ebp + 8], ebx
jl 0x40c6ad
mov al, byte [ebp + 0xb]
push 0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov al, byte [ebp + 0xb]
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], ebx
mov byte [ebp - 0x2c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x1c]
push eax
push esi
call fcn.00405ef0
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x42a]
mov word [ebp - 0x42c], bx
rep stosd dword es:[edi], eax
add esp, 0xc
stosw word es:[edi], ax
lea eax, [ebp - 0x42c]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov ecx, 0x1ff
xor eax, eax
lea edi, [ebp - 0xc2a]
mov word [ebp - 0xc2c], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0xc2c]
push 0x400
push eax
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp dword [ebp - 0x14], ebx
je 0x40c7b1
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jne 0x40c76f
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
lea ecx, [ebp - 0xc2c]
push ecx
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
pop ecx
test eax, eax
pop ecx
je 0x40c7b1
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jne 0x40c78f
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push ebx
push eax
call dword [sym.imp.MSVCRT.dll__waccess]
pop ecx
test eax, eax
pop ecx
jne 0x40c7b1
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jne 0x40c7a9
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push eax
call dword [sym.imp.MSVCRT.dll__wrmdir]
pop ecx
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8