Function at 0x470250
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
sub esp, 0x88c
mov ax, word [0x50fd10]
push ebp
mov ebp, dword [esp + 0x894]
push esi
push edi
mov word [esp + 0x690], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x692]
push 0x4f834c
rep stosd dword es:[edi], eax
push ebp
push 0x4f6614
lea ecx, [esp + 0x69c]
push 0x103
push ecx
mov esi, 1
stosw word es:[edi], ax
call dword [sym.imp.MSVCRT.dll__snwprintf]
add esp, 0x14
lea edx, [esp + 0x238]
lea eax, [esp + 0x690]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
jne 0x4702d1
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x88c
ret
push ebx
mov ebx, dword [esp + 0x8a4]
mov edi, dword [sym.imp.MSVCRT.dll_wcscmp]
lea ecx, [esp + 0x268]
push 0x4f8348
push ecx
call edi
add esp, 8
test eax, eax
je 0x470459
lea edx, [esp + 0x268]
push 0x4f8340
push edx
call edi
add esp, 8
test eax, eax
je 0x470459
test byte [esp + 0x23c], 0x10
mov ax, word [0x50fd10]
je 0x470384
mov word [esp + 0x48c], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x48e]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x268]
lea edx, [esp + 0x48c]
push ecx
push ebp
push 0x4f830c
push 0x103
push edx
stosw word es:[edi], ax
call dword [sym.imp.MSVCRT.dll__snwprintf]
mov eax, dword [esp + 0x8c0]
mov ecx, dword [esp + 0x8bc]
push eax
push ecx
lea edx, [esp + 0x4a8]
push ebx
push edx
call fcn.00470250
add esp, 0x24
jmp 0x470457
mov word [esp + 0x34], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x36]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x268]
lea edx, [esp + 0x34]
push ecx
push ebp
push 0x4f6614
push 0x103
push edx
stosw word es:[edi], ax
call dword [sym.imp.MSVCRT.dll__snwprintf]
add esp, 0x14
test ebx, ebx
je 0x4703c6
cmp ebx, 1
jne 0x470459
mov eax, dword [esp + 0x8a8]
test eax, eax
je 0x4703f3
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
test eax, eax
je 0x470459
mov ecx, dword [esp + 0x8a8]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x470459
lea edx, [esp + 0x34]
push 0x20
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esp + 0x8ac]
test eax, eax
je 0x47044c
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x2a], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x2e], eax
lea eax, [esp + 0x34]
push ecx
mov dword [esp + 0x1c], 3
mov dword [esp + 0x20], eax
mov word [esp + 0x28], 0x454
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
jmp 0x470457
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x23c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4702d9
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebx, ebx
je 0x470488
cmp ebx, 2
jne 0x4704ed
push 0x20
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esp + 0x8ac]
test eax, eax
je 0x4704e4
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov dword [esp + 0x18], 3
mov dword [esp + 0x2a], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x2e], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x20], ebp
mov word [esp + 0x28], 0x454
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov esi, eax
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x88c
ret
push ebp
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov esi, eax
pop ebx
mov eax, esi
pop edi
pop esi
pop ebp
add esp, 0x88c
ret