Function at 0x407490
Capabilities:
Copy file
Create directory
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x678
mov eax, dword [0x6ce36c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
je 0x4074af
cmp dword [ebp + 0xc], 0
jne 0x4074b6
xor eax, eax
jmp 0x40771f
push 0x104
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x218]
push ecx
call fcn.0044d440
add esp, 0xc
lea edx, [ebp - 0x218]
push edx
call fcn.004ccb20
add esp, 4
movsx eax, byte [ebp + eax - 0x219]
cmp eax, 0x5c
je 0x407503
push 0x104
push 0x69a274
lea ecx, [ebp - 0x218]
push ecx
call fcn.0044d420
add esp, 0xc
push 0x104
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x110]
push eax
call fcn.0044d440
add esp, 0xc
lea ecx, [ebp - 0x110]
push ecx
call fcn.004ccb20
add esp, 4
movsx edx, byte [ebp + eax - 0x111]
cmp edx, 0x5c
je 0x407550
push 0x104
push 0x69a278
lea eax, [ebp - 0x110]
push eax
call fcn.0044d420
add esp, 0xc
push 0
lea ecx, [ebp - 0x218]
push ecx
call fcn.004ccbab
add esp, 8
cmp eax, 0xffffffff
jne 0x40756d
xor eax, eax
jmp 0x40771f
lea edx, [ebp - 0x110]
push edx
lea eax, [ebp - 0x218]
push eax
call fcn.0044d460
add esp, 8
test eax, eax
jne 0x40758e
xor eax, eax
jmp 0x40771f
push 0
lea ecx, [ebp - 0x110]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x104
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x320]
push eax
call fcn.0044d440
add esp, 0xc
push 1
push 0x69a27c
lea ecx, [ebp - 0x320]
push ecx
call fcn.0044d420
add esp, 0xc
lea edx, [ebp - 0x468]
push edx
lea eax, [ebp - 0x320]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x324], eax
cmp dword [ebp - 0x324], 0xffffffff
jne 0x4075f8
xor eax, eax
jmp 0x40771f
movsx ecx, byte [ebp - 0x43c]
cmp ecx, 0x2e
je 0x4076f1
push 0x104
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x678]
push eax
call fcn.0044d440
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x43c]
push ecx
lea edx, [ebp - 0x678]
push edx
call fcn.0044d420
add esp, 0xc
push 0x104
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x570]
push ecx
call fcn.0044d440
add esp, 0xc
push 0x104
lea edx, [ebp - 0x43c]
push edx
lea eax, [ebp - 0x570]
push eax
call fcn.0044d420
add esp, 0xc
mov ecx, dword [ebp - 0x468]
and ecx, 0x10
je 0x4076b9
lea edx, [ebp - 0x570]
push edx
lea eax, [ebp - 0x678]
push eax
call fcn.00407490
add esp, 8
test eax, eax
jne 0x4076aa
mov ecx, dword [ebp - 0x324]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
jmp 0x40771f
lea edx, [ebp - 0x678]
push edx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
jmp 0x4076f1
push 0
lea eax, [ebp - 0x570]
push eax
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x4076e4
mov edx, dword [ebp - 0x324]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
jmp 0x40771f
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebp - 0x468]
push ecx
mov edx, dword [ebp - 0x324]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4075f8
mov eax, dword [ebp - 0x324]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cac87
mov esp, ebp
pop ebp
ret