Function at 0x402f48
Capabilities:
Accept command line arguments
Copy file
Enumerate files on windows
Get disk information
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xcd8
push ebx
push esi
xor ebx, ebx
xor esi, esi
cmp esi, 0x13e6
jne 0x402f6a
mov eax, 0x38d6
add dword [0x9911c4], eax
cmp dword [0x9911c4], 0xbd8
jne 0x402f7d
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
inc esi
cmp esi, 0x31a652
jl 0x402f57
push edi
call fcn.00402f34
mov eax, dword [0x9911c4]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
xor edi, edi
cmp eax, ebx
jbe 0x402fca
push edi
call fcn.00402d80
cmp dword [0x9911c4], 0x29
jne 0x402fc0
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea eax, [ebp - 4]
push eax
call esi
mov eax, dword [0x9911c4]
inc edi
cmp edi, eax
jb 0x402f9d
xor edi, edi
cmp eax, 0x481
jne 0x402fed
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumResourceLanguagesW]
push ebx
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov eax, dword [0x9911c4]
cmp eax, 0x721
je 0x40302d
inc edi
cmp edi, 0x962be2
jl 0x402fcc
pop edi
cmp eax, 0x19c
jne 0x40307a
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFindAtomA]
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateActCtxA]
jmp 0x403073
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0x401224
lea eax, [ebp - 0x4d8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_AddVectoredExceptionHandler]
lea eax, [ebp - 4]
push eax
call esi
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x1c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
push ebx
call dword [sym.imp.KERNEL32.dll_ExitThread]
xor esi, esi
cmp esi, 0xab9d
jne 0x403094
push 0x970a48
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x9911c0], eax
inc esi
cmp esi, 0x2594b
jl 0x40307c
mov byte [0x970a48], bl
xor esi, esi
cmp esi, 0x148
jne 0x4030b2
call fcn.00402e38
inc esi
cmp esi, 0x427fa7
jl 0x4030a5
push 0x40d010
push dword [0x9911c4]
push dword [0x990d70]
call fcn.00402d34
xor esi, esi
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFlags]
cmp esi, 0x2f7e4
jne 0x4030e7
call fcn.00402e2a
inc esi
cmp esi, 0x48122
jl 0x4030d3
call fcn.0040250a
cmp dword [0x9911c4], 0x58c
jne 0x40319f
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push ebx
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
lea eax, [ebp - 0x328]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
push ebx
push ebx
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
push ebx
call dword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileExW]
push ebx
push ebx
push ebx
lea eax, [ebp - 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xcd8]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathA]
lea eax, [ebp - 0x10]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetBinaryTypeW]
push ebx
push ebx
push ebx
push 0x40123c
push 0x40125c
call dword [sym.imp.KERNEL32.dll_MoveFileWithProgressW]
call fcn.00402e23
pop esi
xor eax, eax
pop ebx
leave
ret