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

Disassembly:
sub esp, 0x88c
mov ax, word [0x4da9a0]
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 0x4c5310
rep stosd dword es:[edi], eax
push ebp
push 0x4c3608
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 0x46f5e1
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 0x4c530c
push ecx
call edi
add esp, 8
test eax, eax
je 0x46f769
lea edx, [esp + 0x268]
push 0x4c5304
push edx
call edi
add esp, 8
test eax, eax
je 0x46f769
test byte [esp + 0x23c], 0x10
mov ax, word [0x4da9a0]
je 0x46f694
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 0x4c3aa0
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.0046f560
add esp, 0x24
jmp 0x46f767
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 0x4c3608
push 0x103
push edx
stosw word es:[edi], ax
call dword [sym.imp.MSVCRT.dll__snwprintf]
add esp, 0x14
test ebx, ebx
je 0x46f6d6
cmp ebx, 1
jne 0x46f769
mov eax, dword [esp + 0x8a8]
test eax, eax
je 0x46f703
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
test eax, eax
je 0x46f769
mov ecx, dword [esp + 0x8a8]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x46f769
lea edx, [esp + 0x34]
push 0x20
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esp + 0x8ac]
test eax, eax
je 0x46f75c
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 0x46f767
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 0x46f5e9
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebx, ebx
je 0x46f798
cmp ebx, 2
jne 0x46f7fd
push 0x20
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esp + 0x8ac]
test eax, eax
je 0x46f7f4
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