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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41a5c0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9cc
push ebx
push esi
push edi
cmp dword [ebp + 8], 0
je 0x4013ed
cmp dword [ebp + 0xc], 0
jne 0x4013f4
xor eax, eax
jmp 0x401d48
push 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x250
push 0
lea ecx, [ebp - 0x25c]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov word [ebp - 0x464], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x462]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x464]
push eax
call dword [sym.imp.MSVCRT.dll_wcsncpy]
add esp, 0xc
lea ecx, [ebp - 0x464]
push ecx
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
xor edx, edx
mov dx, word [ebp + eax*2 - 0x466]
cmp edx, 0x5c
je 0x401482
push 0x104
push 0x41c7fc
lea eax, [ebp - 0x464]
push eax
call dword [sym.imp.MSVCRT.dll_wcsncat]
add esp, 0xc
push 0x104
push 0x41c7f8
lea ecx, [ebp - 0x464]
push ecx
call dword [sym.imp.MSVCRT.dll_wcsncat]
add esp, 0xc
mov word [ebp - 0x66c], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x66a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x66c]
push eax
call dword [sym.imp.MSVCRT.dll_wcsncpy]
add esp, 0xc
lea ecx, [ebp - 0x66c]
push ecx
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
xor edx, edx
mov dx, word [ebp + eax*2 - 0x66e]
cmp edx, 0x5c
je 0x401508
push 0x104
push 0x41c7fc
lea eax, [ebp - 0x66c]
push eax
call dword [sym.imp.MSVCRT.dll_wcsncat]
add esp, 0xc
mov word [ebp - 0x874], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x872]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x874]
push edx
call dword [sym.imp.MSVCRT.dll_wcsncpy]
add esp, 0xc
lea eax, [ebp - 0x874]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
xor ecx, ecx
mov cx, word [ebp + eax*2 - 0x876]
cmp ecx, 0x5c
je 0x401574
push 0x104
push 0x41c7fc
lea edx, [ebp - 0x874]
push edx
call dword [sym.imp.MSVCRT.dll_wcsncat]
add esp, 0xc
lea eax, [ebp - 0x25c]
push eax
lea ecx, [ebp - 0x464]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x878], eax
cmp dword [ebp - 0x878], 0
je 0x4015a0
cmp dword [ebp - 0x878], 0xffffffff
jne 0x4015a7
xor eax, eax
jmp 0x401d48
mov edx, dword [ebp - 0x25c]
and edx, 0x10
test edx, edx
jne 0x401777
push 0x41c7f4
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x401777
push 0x41c7ec
lea ecx, [ebp - 0x230]
push ecx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x401777
push 0
lea edx, [ebp - 0x230]
push edx
lea ecx, [ebp - 0x87c]
call fcn.00401d60
mov dword [ebp - 0x8dc], eax
mov eax, dword [ebp - 0x8dc]
mov dword [ebp - 0x8e0], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x8e0]
push ecx
lea edx, [ebp - 0x66c]
push edx
lea ecx, [ebp - 0x880]
call fcn.00401d60
mov dword [ebp - 0x8e4], eax
mov eax, dword [ebp - 0x8e4]
mov dword [ebp - 0x8e8], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x8e8]
push ecx
lea edx, [ebp - 0x884]
push edx
call fcn.00401f90
mov dword [ebp - 0x8ec], eax
mov eax, dword [ebp - 0x8ec]
mov dword [ebp - 0x8f0], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x8f0]
call fcn.00401dd0
push eax
lea ecx, [ebp - 0x230]
push ecx
lea ecx, [ebp - 0x888]
call fcn.00401d60
mov dword [ebp - 0x8f4], eax
mov edx, dword [ebp - 0x8f4]
mov dword [ebp - 0x8f8], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x8f8]
push eax
lea ecx, [ebp - 0x874]
push ecx
lea ecx, [ebp - 0x88c]
call fcn.00401d60
mov dword [ebp - 0x8fc], eax
mov edx, dword [ebp - 0x8fc]
mov dword [ebp - 0x900], edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x900]
push eax
lea ecx, [ebp - 0x890]
push ecx
call fcn.00401f90
mov dword [ebp - 0x904], eax
mov edx, dword [ebp - 0x904]
mov dword [ebp - 0x908], edx
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x908]
call fcn.00401dd0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x890]
call fcn.00401df0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x88c]
call fcn.00401df0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x888]
call fcn.00401df0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x884]
call fcn.00401df0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x880]
call fcn.00401df0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x87c]
call fcn.00401df0
jmp 0x401950
cmp dword [ebp + 0x10], 0
je 0x401950
mov eax, dword [ebp - 0x25c]
and eax, 0x10
test eax, eax
je 0x401950
push 0x41c7f4
lea ecx, [ebp - 0x230]
push ecx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x401950
push 0x41c7ec
lea edx, [ebp - 0x230]
push edx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x401950
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x230]
push ecx
lea ecx, [ebp - 0x894]
call fcn.00401d60
mov dword [ebp - 0x90c], eax
mov edx, dword [ebp - 0x90c]
mov dword [ebp - 0x910], edx
mov dword [ebp - 4], 6
mov eax, dword [ebp - 0x910]
push eax
lea ecx, [ebp - 0x874]
push ecx
lea ecx, [ebp - 0x898]
call fcn.00401d60
mov dword [ebp - 0x914], eax
mov edx, dword [ebp - 0x914]
mov dword [ebp - 0x918], edx
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x918]
push eax
lea ecx, [ebp - 0x89c]
push ecx
call fcn.00401f90
mov dword [ebp - 0x91c], eax
mov edx, dword [ebp - 0x91c]
mov dword [ebp - 0x920], edx
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x920]
call fcn.00401dd0
push eax
lea eax, [ebp - 0x230]
push eax
lea ecx, [ebp - 0x8a0]
call fcn.00401d60
mov dword [ebp - 0x924], eax
mov ecx, dword [ebp - 0x924]
mov dword [ebp - 0x928], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x928]
push edx
lea eax, [ebp - 0x66c]
push eax
lea ecx, [ebp - 0x8a4]
call fcn.00401d60
mov dword [ebp - 0x92c], eax
mov ecx, dword [ebp - 0x92c]
mov dword [ebp - 0x930], ecx
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x930]
push edx
lea eax, [ebp - 0x8a8]
push eax
call fcn.00401f90
mov dword [ebp - 0x934], eax
mov ecx, dword [ebp - 0x934]
mov dword [ebp - 0x938], ecx
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x938]
call fcn.00401dd0
push eax
call fcn.004013c0
add esp, 0xc
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x8a8]
call fcn.00401df0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x8a4]
call fcn.00401df0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x8a0]
call fcn.00401df0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x89c]
call fcn.00401df0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x898]
call fcn.00401df0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x894]
call fcn.00401df0
mov edx, 1
test edx, edx
je 0x401d36
lea eax, [ebp - 0x25c]
push eax
mov ecx, dword [ebp - 0x878]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x401d24
mov edx, dword [ebp - 0x25c]
and edx, 0x10
test edx, edx
jne 0x401b49
push 0x41c7f4
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x401b49
push 0x41c7ec
lea ecx, [ebp - 0x230]
push ecx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x401b49
push 0
lea edx, [ebp - 0x230]
push edx
lea ecx, [ebp - 0x8ac]
call fcn.00401d60
mov dword [ebp - 0x93c], eax
mov eax, dword [ebp - 0x93c]
mov dword [ebp - 0x940], eax
mov dword [ebp - 4], 0xc
mov ecx, dword [ebp - 0x940]
push ecx
lea edx, [ebp - 0x66c]
push edx
lea ecx, [ebp - 0x8b0]
call fcn.00401d60
mov dword [ebp - 0x944], eax
mov eax, dword [ebp - 0x944]
mov dword [ebp - 0x948], eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x948]
push ecx
lea edx, [ebp - 0x8b4]
push edx
call fcn.00401f90
mov dword [ebp - 0x94c], eax
mov eax, dword [ebp - 0x94c]
mov dword [ebp - 0x950], eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x950]
call fcn.00401dd0
push eax
lea ecx, [ebp - 0x230]
push ecx
lea ecx, [ebp - 0x8b8]
call fcn.00401d60
mov dword [ebp - 0x954], eax
mov edx, dword [ebp - 0x954]
mov dword [ebp - 0x958], edx
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x958]
push eax
lea ecx, [ebp - 0x874]
push ecx
lea ecx, [ebp - 0x8bc]
call fcn.00401d60
mov dword [ebp - 0x95c], eax
mov edx, dword [ebp - 0x95c]
mov dword [ebp - 0x960], edx
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x960]
push eax
lea ecx, [ebp - 0x8c0]
push ecx
call fcn.00401f90
mov dword [ebp - 0x964], eax
mov edx, dword [ebp - 0x964]
mov dword [ebp - 0x968], edx
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x968]
call fcn.00401dd0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x8c0]
call fcn.00401df0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x8bc]
call fcn.00401df0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x8b8]
call fcn.00401df0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x8b4]
call fcn.00401df0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x8b0]
call fcn.00401df0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8ac]
call fcn.00401df0
jmp 0x401d22
cmp dword [ebp + 0x10], 0
je 0x401d22
mov eax, dword [ebp - 0x25c]
and eax, 0x10
test eax, eax
je 0x401d22
push 0x41c7f4
lea ecx, [ebp - 0x230]
push ecx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x401d22
push 0x41c7ec
lea edx, [ebp - 0x230]
push edx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x401d22
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x230]
push ecx
lea ecx, [ebp - 0x8c4]
call fcn.00401d60
mov dword [ebp - 0x96c], eax
mov edx, dword [ebp - 0x96c]
mov dword [ebp - 0x970], edx
mov dword [ebp - 4], 0x12
mov eax, dword [ebp - 0x970]
push eax
lea ecx, [ebp - 0x874]
push ecx
lea ecx, [ebp - 0x8c8]
call fcn.00401d60
mov dword [ebp - 0x974], eax
mov edx, dword [ebp - 0x974]
mov dword [ebp - 0x978], edx
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x978]
push eax
lea ecx, [ebp - 0x8cc]
push ecx
call fcn.00401f90
mov dword [ebp - 0x97c], eax
mov edx, dword [ebp - 0x97c]
mov dword [ebp - 0x980], edx
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x980]
call fcn.00401dd0
push eax
lea eax, [ebp - 0x230]
push eax
lea ecx, [ebp - 0x8d0]
call fcn.00401d60
mov dword [ebp - 0x984], eax
mov ecx, dword [ebp - 0x984]
mov dword [ebp - 0x988], ecx
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x988]
push edx
lea eax, [ebp - 0x66c]
push eax
lea ecx, [ebp - 0x8d4]
call fcn.00401d60
mov dword [ebp - 0x98c], eax
mov ecx, dword [ebp - 0x98c]
mov dword [ebp - 0x990], ecx
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x990]
push edx
lea eax, [ebp - 0x8d8]
push eax
call fcn.00401f90
mov dword [ebp - 0x994], eax
mov ecx, dword [ebp - 0x994]
mov dword [ebp - 0x998], ecx
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x998]
call fcn.00401dd0
push eax
call fcn.004013c0
add esp, 0xc
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x8d8]
call fcn.00401df0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x8d4]
call fcn.00401df0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x8d0]
call fcn.00401df0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x8cc]
call fcn.00401df0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x8c8]
call fcn.00401df0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8c4]
call fcn.00401df0
jmp 0x401d31
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x401d31
jmp 0x401d36
jmp 0x401950
mov edx, dword [ebp - 0x878]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret