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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x172c
call fcn.0040a1f0
push ebx
push esi
push edi
push dword [0x843e7c]
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_LocalAlloc]
mov dword [0x843878], eax
mov esi, 0x519167
cmp dword [0x843e7c], 0x37
jne 0x4096da
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_GetConsoleScreenBufferInfo]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_EnumDateFormatsW]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedCompareExchange]
push ebx
push ebx
push ebx
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.DLL_VerifyVersionInfoA]
push ebx
push ebx
lea eax, [ebp - 0xb2c]
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_FindResourceA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateMutexA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_SetProcessShutdownParameters]
lea eax, [ebp - 0x24c]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_FindNextFileA]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x132c]
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_SearchPathA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_LocalFileTimeToFileTime]
push 0x401460
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_OpenMutexA]
push ebx
call dword [sym.imp.KERNEL32.DLL_DisableThreadLibraryCalls]
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_EnumSystemLocalesW]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x72c]
push eax
call dword [sym.imp.KERNEL32.DLL_GetComputerNameA]
push ebx
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCriticalSectionSpinCount]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_HeapSize]
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
dec esi
jne 0x4095f9
mov edi, 0x446a68
cmp esi, 0x8964f
jne 0x4096fa
push 0x401464
push edi
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
cmp esi, 0x1744
jne 0x40970c
mov eax, dword [0x433008]
mov dword [0x845a00], eax
inc esi
cmp esi, 0x79a863
jl 0x4096e6
xor esi, esi
cmp esi, 0x8e13
jge 0x40973a
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetCharWidth32A]
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 [0x843e7c], 0x6b
jne 0x409778
push ebx
call dword [sym.imp.KERNEL32.DLL_GetConsoleAliasesLengthA]
push 0x30
lea eax, [ebp - 0x6c]
push ebx
push eax
mov dword [ebp - 0x70], ebx
call fcn.0040a220
add esp, 0xc
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x70]
push eax
push 0x401474
call dword [sym.imp.KERNEL32.DLL_GetDefaultCommConfigW]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_GetProfileSectionW]
inc esi
cmp esi, 0x1816f663
jl 0x409717
xor esi, esi
cmp dword [0x843e7c], ebx
jbe 0x4097bb
cmp dword [0x843e7c], 0xfe
jne 0x4097ac
push ebx
lea eax, [ebp - 0x72c]
push eax
push ebx
push 0x401498
push ebx
call dword [sym.imp.KERNEL32.DLL_FoldStringA]
push esi
call fcn.004093c9
inc esi
cmp esi, dword [0x843e7c]
jb 0x40978b
xor esi, esi
cmp dword [0x843e7c], 0x15a
jne 0x4097d0
push ebx
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
cmp esi, 0x76055
jne 0x4097e4
push edi
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
mov dword [0x843e78], eax
inc esi
cmp esi, 0x1756c5
jl 0x4097bd
push edi
push dword [0x843e78]
mov byte [0x446a68], bl
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [0x446a64], eax
xor esi, esi
cmp esi, 0x1c
jne 0x409811
call fcn.004094d1
inc esi
cmp esi, 0x3debc7
jl 0x409807
push 0x433010
push dword [0x843e7c]
push dword [0x843878]
call fcn.0040931f
mov esi, dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
xor edi, edi
cmp dword [0x843e7c], 0x10
jne 0x409855
push ebx
call esi
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetCharWidthW]
push ebx
call dword [sym.imp.KERNEL32.DLL_AddAtomA]
cmp edi, 0x1e674
jne 0x409862
call fcn.004094c3
inc edi
cmp edi, 0x3e4e2
jl 0x409838
mov edi, 0xdd7b3
cmp dword [0x843e7c], 0x21
jne 0x40988e
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_WriteProfileSectionW]
push ebx
call dword [sym.imp.KERNEL32.DLL_GetConsoleAliasesLengthW]
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
dec edi
jne 0x409870
call fcn.0040911c
push 0x73
pop eax
push 0x6d
mov word [0x843e82], ax
pop eax
push 0x67
mov word [0x843e86], ax
pop eax
push 0x69
mov word [0x843e88], ax
pop eax
push 0x6c
mov word [0x843e84], ax
pop eax
push 0x32
mov word [0x843e94], ax
pop eax
push 0x6c
mov word [0x843e8c], ax
pop eax
push 0x33
mov word [0x843e92], ax
xor eax, eax
mov word [0x843e96], ax
pop eax
push 0x64
mov word [0x843e8a], ax
pop eax
push 0x6d
mov word [0x843e90], ax
pop eax
push 0x2e
mov word [0x843e80], ax
pop eax
push 0x843e80
mov word [0x843e8e], ax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryW]
cmp dword [0x843e7c], 0x1144
mov edi, dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
jne 0x409992
lea eax, [ebp - 0xc]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_SetConsoleCursorInfo]
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalFlags]
push ebx
lea eax, [ebp - 0x132c]
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 - 0x3c]
push eax
call dword [sym.imp.KERNEL32.DLL_InitializeCriticalSection]
push 0x4014b8
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateJobObjectW]
push ebx
call edi
push ebx
push ebx
push ebx
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.DLL_VerifyVersionInfoA]
push ebx
call esi
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedIncrement]
push ebx
call esi
call dword [sym.imp.KERNEL32.DLL_GetCommandLineW]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
call dword [sym.imp.KERNEL32.DLL_GetCommandLineA]
cmp dword [0x843e7c], 0x1d
jne 0x409aaa
push ebx
lea eax, [ebp - 4]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_WriteConsoleW]
push ebx
push ebx
lea eax, [ebp - 0x72c]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpynA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_CopyFileW]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateJobSet]
push ebx
lea eax, [ebp - 0xb2c]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalGetAtomNameA]
push ebx
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_SetConsoleWindowInfo]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_GetProcessAffinityMask]
push 0x4014e8
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_GetThreadContext]
lea eax, [ebp - 0x32c]
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_EnumResourceLanguagesA]
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 - 0x172c]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetAtomNameA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_SetVolumeMountPointW]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_DefineDosDeviceA]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetDiskFreeSpaceExW]
lea eax, [ebp - 8]
push eax
call esi
push ebx
push ebx
lea eax, [ebp - 0xf2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_GetPrivateProfileStructA]
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_UnlockFile]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL__lwrite]
push 0x401530
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_OpenJobObjectW]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_VirtualProtect]
push ebx
call edi
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret