Function at 0x4051d0
Capabilities:
Copy file
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x87c
mov eax, dword [0x41507c]
xor eax, esp
mov dword [esp + 0x878], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x47a]
push edx
mov dword [esp + 0x20], eax
mov word [esp + 0x47c], cx
call fcn.0040ca90
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
add esp, 0xc
push ebx
lea eax, [esp + 0x474]
push eax
call esi
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x412af4
lea ecx, [esp + 0x474]
push ecx
call edi
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x474]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
je 0x405343
lea ecx, [ecx]
test byte [esp + 0x18], 0x10
jne 0x40535a
push str..cfg
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x4052c0
push str..imc
lea edx, [esp + 0x48]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x4052c0
push str..ims
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40541b
push ebx
lea ecx, [esp + 0x474]
push ecx
call esi
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x474]
push eax
call edi
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x272]
push edx
mov word [esp + 0x274], cx
call fcn.0040ca90
mov eax, dword [esp + 0x20]
add esp, 0xc
push eax
lea ecx, [esp + 0x26c]
push ecx
call esi
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x26c]
push eax
call edi
push 0
lea ecx, [esp + 0x26c]
push ecx
lea edx, [esp + 0x478]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40541b
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x878]
xor ecx, esp
call fcn.00408d89
mov esp, ebp
pop ebp
ret
push 0x412b20
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x40541b
push 0x412b24
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x40541b
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x682]
push eax
mov word [esp + 0x684], dx
call fcn.0040ca90
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x27e]
push edx
mov word [esp + 0x280], cx
call fcn.0040ca90
add esp, 0x18
push ebx
lea eax, [esp + 0x67c]
push eax
call esi
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x67c]
push edx
call edi
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x26c]
push ecx
call esi
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x26c]
push eax
call edi
lea ecx, [esp + 0x268]
push ecx
lea edx, [esp + 0x67c]
push edx
call fcn.004051d0
add esp, 8
test eax, eax
je 0x40545f
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x405260
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0x884]
pop edi
pop esi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.00408d89
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
push eax
jmp 0x40533d