Function at 0x40583e
Capabilities:
Copy file
Enumerate files on windows

Disassembly:
push 0x1a4
mov eax, 0x440f71
call fcn.004264f2
push str.directx
lea ecx, [ebp - 0x160]
call fcn.00402853
and dword [ebp - 4], 0
call fcn.0043ea10
push eax
lea ecx, [ebp - 0x16c]
call fcn.00402853
push ecx
mov byte [ebp - 4], 1
lea eax, [ebp - 0x160]
mov dword [ebp - 0x174], esp
mov ecx, esp
push eax
call fcn.004098a1
push ecx
mov byte [ebp - 4], 2
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x170], esp
mov ecx, esp
push eax
call fcn.004098a1
lea eax, [ebp - 0x154]
push eax
mov byte [ebp - 4], 1
call fcn.0040559a
add esp, 0xc
push 0x448068
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 3
call fcn.004088b2
test eax, eax
je 0x405c73
call fcn.00405527
mov byte [ebp - 0x155], al
mov edi, 0x447990
push edi
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.004084c1
add esp, 0xc
lea ecx, [ebp - 0x160]
push ecx
push eax
lea eax, [ebp - 0x198]
push eax
mov byte [ebp - 4], 4
call fcn.0040846a
add esp, 0xc
push 0x447b40
push eax
lea eax, [ebp - 0x184]
push eax
mov byte [ebp - 4], 5
call fcn.004084c1
mov eax, dword [eax]
add esp, 0xc
lea ecx, [ebp - 0x150]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ecx, dword [ebp - 0x184]
add ecx, 0xfffffff0
mov dword [ebp - 0x164], eax
call fcn.00401ef4
mov ecx, dword [ebp - 0x198]
add ecx, 0xfffffff0
call fcn.00401ef4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x1a0]
add ecx, 0xfffffff0
call fcn.00401ef4
lea esi, [ebp - 0x168]
call fcn.004057f6
cmp dword [ebp - 0x164], 0xffffffff
mov byte [ebp - 4], 6
je 0x405c65
lea eax, [ebp - 0x150]
push eax
push dword [ebp - 0x164]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x405c59
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
test byte [ebp - 0x150], 0x20
je 0x405c3e
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x15c]
call fcn.00402853
cmp byte [ebp - 0x155], 0
mov byte [ebp - 4], 7
jne 0x405adb
push edi
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x1ac]
push eax
call fcn.004084c1
add esp, 0xc
lea ecx, [ebp - 0x15c]
push ecx
push eax
lea eax, [ebp - 0x18c]
push eax
mov byte [ebp - 4], 8
call fcn.0040846a
add esp, 0xc
mov ebx, eax
push edi
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x19c]
push eax
mov byte [ebp - 4], 9
call fcn.004084c1
add esp, 0xc
lea ecx, [ebp - 0x160]
push ecx
push eax
lea eax, [ebp - 0x178]
push eax
mov byte [ebp - 4], 0xa
call fcn.0040846a
add esp, 0xc
push edi
push eax
lea eax, [ebp - 0x1a4]
push eax
mov byte [ebp - 4], 0xb
call fcn.004084c1
add esp, 0xc
lea ecx, [ebp - 0x15c]
push ecx
push eax
lea eax, [ebp - 0x1a8]
push eax
mov byte [ebp - 4], 0xc
call fcn.0040846a
mov ebx, dword [ebx]
mov eax, dword [eax]
add esp, 0xc
push 0
push ebx
push eax
call esi
mov ecx, dword [ebp - 0x1a8]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x1a4]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x178]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x19c]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x18c]
add ecx, 0xfffffff0
call fcn.00401ef4
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1ac]
add ecx, 0xfffffff0
call fcn.00401ef4
push edi
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.004084c1
add esp, 8
mov ecx, esp
mov dword [ebp - 0x1b0], esp
lea edx, [ebp - 0x15c]
push edx
push eax
push ecx
mov byte [ebp - 4], 0xd
call fcn.0040846a
add esp, 0xc
call fcn.004057a6
pop ecx
test al, al
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x194]
sete bl
add ecx, 0xfffffff0
call fcn.00401ef4
test bl, bl
je 0x405c2c
push edi
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.004084c1
add esp, 0xc
lea ecx, [ebp - 0x15c]
push ecx
push eax
lea eax, [ebp - 0x170]
push eax
mov byte [ebp - 4], 0xe
call fcn.0040846a
add esp, 0xc
mov ebx, eax
push edi
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x190]
push eax
mov byte [ebp - 4], 0xf
call fcn.004084c1
add esp, 0xc
lea ecx, [ebp - 0x160]
push ecx
push eax
lea eax, [ebp - 0x188]
push eax
mov byte [ebp - 4], 0x10
call fcn.0040846a
add esp, 0xc
push edi
push eax
lea eax, [ebp - 0x180]
push eax
mov byte [ebp - 4], 0x11
call fcn.004084c1
add esp, 0xc
lea ecx, [ebp - 0x15c]
push ecx
push eax
lea eax, [ebp - 0x17c]
push eax
mov byte [ebp - 4], 0x12
call fcn.0040846a
mov ebx, dword [ebx]
mov eax, dword [eax]
add esp, 0xc
push 1
push ebx
push eax
call esi
mov ecx, dword [ebp - 0x17c]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x180]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x188]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x190]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x170]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x174]
add ecx, 0xfffffff0
call fcn.00401ef4
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x15c]
add ecx, 0xfffffff0
call fcn.00401ef4
lea eax, [ebp - 0x150]
push eax
push dword [ebp - 0x164]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4059af
push dword [ebp - 0x164]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0x168]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x154]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x16c]
add ecx, 0xfffffff0
call fcn.00401ef4
mov ecx, dword [ebp - 0x160]
add ecx, 0xfffffff0
call fcn.00401ef4
call fcn.00426575
ret