Function at 0x403aa0
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Move file

Disassembly:
sub esp, 0xea0
mov eax, dword [0x41a2b4]
xor eax, esp
mov dword [esp + 0xe9c], eax
push ebx
push ebp
mov ebp, dword [esp + 0xeac]
push esi
push edi
push str.RemoveAll
lea eax, [esp + 0x274]
push eax
mov dword [esp + 0x20], ebp
call fcn.00401af0
push str.Started.
mov ecx, 2
lea ebx, [esp + 0x274]
call fcn.00401cd0
add esp, 4
push 0x250
lea ecx, [esp + 0x24]
push 0
push ecx
call fcn.004099e0
lea eax, [esp + 0xcac]
mov esi, ebp
mov ecx, eax
add esp, 0xc
xor edi, edi
mov edx, 0x104
sub esi, ecx
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x403b36
movzx ecx, word [esi + eax]
test cx, cx
je 0x403b36
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x403b16
jmp 0x403b3a
test edx, edx
jne 0x403b42
sub eax, 2
mov edi, 0x8007007a
xor edx, edx
mov word [eax], dx
test edi, edi
jge 0x403b63
push edi
push str.StringCchCopy___failed_for_szDirName_with_pcszFolderName___08X_
lea ecx, [edx + 1]
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea eax, [esp + 0xa98]
mov esi, ebp
mov ecx, eax
xor edi, edi
mov edx, 0x104
sub esi, ecx
jmp 0x403b80
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x403ba0
movzx ecx, word [esi + eax]
test cx, cx
je 0x403ba0
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x403b80
jmp 0x403ba4
test edx, edx
jne 0x403bac
sub eax, 2
mov edi, 0x8007007a
xor edx, edx
mov word [eax], dx
test edi, edi
jge 0x403bcd
push edi
push str.StringCchCopy___failed_for_szFileName_with_pcszFolderName___08X_
lea ecx, [edx + 1]
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea esi, [esp + 0x14]
lea edx, [esp + 0xa98]
call fcn.00401ab0
test eax, eax
jge 0x403c03
push eax
push str.StringCchLength___failed_for_szFileName___08X_
mov ecx, 1
lea ebx, [esp + 0x278]
mov dword [esp + 0x1c], 0
call fcn.00401cd0
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, 0x5c
cmp ax, word [esp + ecx*2 + 0xa96]
je 0x403c55
lea edx, [esp + 0xa98]
push 0x41654c
push edx
push 0x4173a8
mov ecx, 0x104
mov ebx, edx
call fcn.00401870
add esp, 0xc
test eax, eax
jge 0x403c55
push eax
push str.StringCchPrintf___failed_for_szFileName_with__T_PATH_SEP_STR___08X_
mov ecx, 1
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea eax, [esp + 0xa98]
push 0x417440
push eax
push 0x4173a8
mov ecx, 0x104
mov ebx, eax
call fcn.00401870
add esp, 0xc
test eax, eax
jge 0x403c94
push eax
push str.StringCchPrintf___failed_for_szFileName_with__T_PATH_COMPLETE_STR___08X_
mov ecx, 1
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea ecx, [esp + 0xa98]
push ecx
push str.Calling_FindFirstFile___with_path__s_.
mov ecx, 2
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0xa9c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x1c], eax
cmp eax, 0xffffffff
jne 0x403cf9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [esp + 0xa9c]
push ecx
push str.FindFirstFile___failed_for___s__with_error_code:__u
mov ecx, 1
call fcn.00401cd0
add esp, 0xc
push ebp
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ebp, dword [sym.imp.KERNEL32.dll_MoveFileExW]
nop
lea edx, [esp + 0x4c]
push 0x417598
push edx
call fcn.00404e61
add esp, 8
test eax, eax
je 0x404091
lea eax, [esp + 0x4c]
push 0x4175a0
push eax
call fcn.00404e61
add esp, 8
test eax, eax
je 0x404091
test byte [esp + 0x20], 0x10
push 0x206
push 0
je 0x403ef8
lea edx, [esp + 0x89a]
xor ecx, ecx
push edx
mov word [esp + 0x89c], cx
call fcn.004099e0
lea eax, [esp + 0x89c]
lea esi, [esp + 0xcac]
mov ecx, eax
add esp, 0xc
xor edi, edi
mov edx, 0x104
sub esi, ecx
lea esp, [esp]
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x403da0
movzx ecx, word [esi + eax]
test cx, cx
je 0x403da0
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x403d80
jmp 0x403da4
test edx, edx
jne 0x403dac
sub eax, 2
mov edi, 0x8007007a
xor edx, edx
mov word [eax], dx
test edi, edi
jge 0x403dcd
push edi
push str.StringCchCopy___failed_for_szlDirName_with_szDirName___08X_
lea ecx, [edx + 1]
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea esi, [esp + 0x14]
lea edx, [esp + 0x890]
call fcn.00401ab0
test eax, eax
jge 0x403e03
push eax
push str.StringCchLength___failed_for_szlDirName___08X_
mov ecx, 1
lea ebx, [esp + 0x278]
mov dword [esp + 0x1c], 0
call fcn.00401cd0
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, 0x5c
cmp ax, word [esp + ecx*2 + 0x88e]
je 0x403e55
lea edx, [esp + 0x890]
push 0x41654c
push edx
push 0x4173a8
mov ecx, 0x104
mov ebx, edx
call fcn.00401870
add esp, 0xc
test eax, eax
jge 0x403e55
push eax
push str.StringCchPrintf___failed_for_szlDirName_with__T_PATH_SEP_STR___08X_
mov ecx, 1
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x894]
push ecx
push 0x4173a8
mov ecx, 0x104
lea ebx, [esp + 0x89c]
call fcn.00401870
add esp, 0xc
test eax, eax
jge 0x403e99
push eax
push str.StringCchPrintf___failed_for_szlDirName_with_FileAttributes.cFileName___08X_
mov ecx, 1
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea edx, [esp + 0x890]
push edx
call fcn.00403aa0
add esp, 4
lea eax, [esp + 0x890]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x404091
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [esp + 0x894]
push ecx
push str.RemoveDirectory___failed_for__s_with_error_code__u
mov ecx, 1
lea ebx, [esp + 0x27c]
call fcn.00401cd0
add esp, 0xc
push 4
push 0
lea edx, [esp + 0x898]
push edx
jmp 0x40408f
lea ecx, [esp + 0x89a]
xor eax, eax
push ecx
mov word [esp + 0x89c], ax
call fcn.004099e0
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x89c]
mov ecx, eax
add esp, 0xc
xor edi, edi
mov edx, 0x104
sub esi, ecx
jmp 0x403f30
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x403f50
movzx ecx, word [esi + eax]
test cx, cx
je 0x403f50
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x403f30
jmp 0x403f54
test edx, edx
jne 0x403f5c
sub eax, 2
mov edi, 0x8007007a
xor edx, edx
mov word [eax], dx
test edi, edi
jge 0x403f7d
push edi
push str.StringCchCopy___failed_for_szlFile_with_pcszFolderName___08X_
lea ecx, [edx + 1]
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea esi, [esp + 0x14]
lea edx, [esp + 0x890]
call fcn.00401ab0
test eax, eax
jge 0x403fb3
push eax
push str.StringCchLength___failed_for_szlFile___08X_
mov ecx, 1
lea ebx, [esp + 0x278]
mov dword [esp + 0x1c], 0
call fcn.00401cd0
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, 0x5c
cmp ax, word [esp + ecx*2 + 0x88e]
je 0x404005
lea edx, [esp + 0x890]
push 0x41654c
push edx
push 0x4173a8
mov ecx, 0x104
mov ebx, edx
call fcn.00401870
add esp, 0xc
test eax, eax
jge 0x404005
push eax
push str.StringCchPrintf___failed_for_szlFile_with__T_PATH_SEP_STR___08X_
mov ecx, 1
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x894]
push ecx
push 0x4173a8
mov ecx, 0x104
lea ebx, [esp + 0x89c]
call fcn.00401870
add esp, 0xc
test eax, eax
jge 0x404049
push eax
push str.StringCchPrintf___failed_for_szlFile_with_FileAttributes.cFileName___08X_
mov ecx, 1
lea ebx, [esp + 0x278]
call fcn.00401cd0
add esp, 8
lea edx, [esp + 0x890]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x404091
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x894]
push eax
push str.DeleteFile___failed_for__s_with_error_code__u
mov ecx, 1
lea ebx, [esp + 0x27c]
call fcn.00401cd0
add esp, 0xc
push 4
push 0
lea ecx, [esp + 0x898]
push ecx
call ebp
push 0x250
lea edx, [esp + 0x24]
push 0
push edx
call fcn.004099e0
mov edi, dword [esp + 0x28]
add esp, 0xc
lea eax, [esp + 0x20]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x403d00
mov esi, dword [esp + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x4040ed
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.RemoveDirectory___failed_for__s_with_error_code__u
mov ecx, 1
lea ebx, [esp + 0x27c]
call fcn.00401cd0
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
push str.Finished
mov ecx, 2
lea ebx, [esp + 0x274]
call fcn.00401cd0
mov ecx, dword [esp + 0xeb0]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
mov al, 1
call fcn.00404cba
add esp, 0xea0
ret