Function at 0x44fe0b
Capabilities:
Connect to http server
Create http request
Download and write a file
Read and send data from client to server
Read data from internet
Read file on windows
Receive and write data from server to client
Receive data
Send data
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x604]
sub esp, 0x684
mov eax, dword [0x47e5d0]
xor eax, ebp
mov dword [ebp + 0x600], eax
mov eax, dword [ebp + 0x610]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x614]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x618]
push ebx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 0x61c]
push esi
mov esi, dword [ebp + 0x60c]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x620]
push edi
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 0x630]
mov edi, 0x103
xor ebx, ebx
push edi
mov dword [ebp - 0x58], eax
lea eax, [ebp + 0x2f9]
push ebx
push eax
mov dword [ebp - 0x64], esi
mov byte [ebp + 0x2f8], bl
call fcn.00452e00
push edi
lea eax, [ebp + 0x4fd]
push ebx
push eax
mov byte [ebp + 0x4fc], bl
call fcn.00452e00
push edi
lea eax, [ebp + 0xf5]
push ebx
push eax
mov byte [ebp + 0xf4], bl
call fcn.00452e00
add edi, 0xfffffffc
push edi
lea eax, [ebp + 0x3fd]
push ebx
push eax
mov byte [ebp + 0x3fc], bl
call fcn.00452e00
push edi
lea eax, [ebp + 0x1f9]
push ebx
push eax
mov byte [ebp + 0x1f8], bl
call fcn.00452e00
push 0x13c
lea eax, [ebp - 0x48]
push ebx
push eax
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x4c], ebx
call fcn.00452e00
add esp, 0x48
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x2f8]
push eax
call esi
push str.vTask
lea eax, [ebp + 0x1f8]
push eax
call esi
cmp dword [ebp - 0x58], ebx
je 0x44ff4f
mov eax, dword [ebp - 0x58]
cmp byte [eax], bl
je 0x44ff4f
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, edi
jle 0x44ff34
mov eax, edi
jmp 0x44ff3e
push dword [ebp - 0x58]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [ebp - 0x58]
lea eax, [ebp + 0x1f8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 0x2f8]
mov cl, byte [eax]
cmp cl, bl
je 0x44ff67
cmp cl, 0x2f
je 0x44ff63
inc eax
jmp 0x44ff55
mov byte [eax], bl
jmp 0x44ff55
push dword [ebp - 0x64]
lea eax, [ebp + 0x4fc]
push eax
call esi
push ebx
push ebx
push 0x464a50
lea eax, [ebp + 0x2f8]
push eax
lea eax, [ebp + 0x4fc]
push eax
call fcn.0044923e
cmp dword [0x485e24], ebx
jne 0x44ffc7
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp + 0x1f8]
push eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [0x485e24], eax
cmp eax, ebx
jne 0x44ffc7
push str.InternetOpen_Error
push dword [0x481960]
call dword [sym.imp.USER32.dll_wsprintfA]
pop ecx
pop ecx
jmp 0x450709
cmp dword [0x485e28], ebx
jne 0x4500ad
push str.10000
lea eax, [ebp + 0x3fc]
push eax
call esi
lea eax, [ebp + 0x3fc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, dword [sym.imp.WININET.dll_InternetSetOptionA]
push eax
lea eax, [ebp + 0x3fc]
push eax
push 2
push dword [0x485e24]
call edi
push str.10000
lea eax, [ebp + 0x3fc]
push eax
call esi
lea eax, [ebp + 0x3fc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp + 0x3fc]
push eax
push 8
push dword [0x485e24]
call edi
push 0x46fe70
lea eax, [ebp + 0x3fc]
push eax
call esi
lea eax, [ebp + 0x3fc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp + 0x3fc]
push eax
push 3
push dword [0x485e24]
call edi
lea eax, [ebp + 0x2f8]
push eax
push str._FTP:_Connecting_to__s
push ebx
push 1
push dword [0x4800d4]
call fcn.00424cda
add esp, 0x14
push ebx
push 0x8000000
push 1
push dword [ebp - 0x74]
lea eax, [ebp + 0x2f8]
push dword [ebp - 0x7c]
push 0x15
push eax
push dword [0x485e24]
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [0x485e28], eax
cmp eax, ebx
je 0x4506e4
cmp dword [0x485e28], 0xffffffff
je 0x4506e4
mov eax, dword [ebp + 0x628]
dec eax
mov edi, 0x80
je 0x450408
dec eax
je 0x450384
dec eax
je 0x45035c
dec eax
je 0x45026d
dec eax
je 0x450241
dec eax
je 0x450215
dec eax
jne 0x450437
mov edi, dword [ebp - 0x6c]
cmp edi, ebx
je 0x4500ff
mov byte [edi], bl
push ebx
push SQLAllocEnv
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x4fc]
push eax
push dword [0x485e28]
mov dword [ebp - 0x60], ebx
call dword [sym.imp.WININET.dll_FtpFindFirstFileA]
mov dword [ebp - 0x54], eax
cmp eax, ebx
jne 0x45016c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.FTP_LIST_Error__d
push dword [0x481960]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
xor esi, esi
push dword [0x485e28]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call edi
push dword [0x485e24]
mov dword [0x485e28], ebx
call edi
mov dword [0x485e24], ebx
mov eax, esi
jmp 0x45070b
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
xor eax, eax
inc eax
cmp eax, ebx
je 0x4501db
cmp edi, ebx
je 0x4501db
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, dword [ebp + 0x624]
jge 0x4501db
push 1
lea eax, [ebp - 0x20]
push 0x466c80
push eax
call fcn.004549c0
add esp, 0xc
test eax, eax
je 0x4501cc
push 2
lea eax, [ebp - 0x20]
push 0x467414
push eax
call fcn.004549c0
add esp, 0xc
test eax, eax
je 0x4501cc
lea eax, [ebp - 0x20]
push eax
push edi
call esi
push 0x464930
push edi
call esi
inc dword [ebp - 0x60]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x54]
call dword [sym.imp.WININET.dll_InternetFindNextFileA]
jmp 0x450175
push dword [ebp - 0x54]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [0x485e28]
call esi
push dword [0x485e24]
mov dword [0x485e28], ebx
call esi
mov eax, dword [ebp - 0x60]
mov dword [0x485e24], ebx
cmp eax, ebx
jne 0x45070b
xor eax, eax
inc eax
jmp 0x45070b
lea eax, [ebp + 0x4fc]
push eax
push dword [0x485e28]
call dword [sym.imp.WININET.dll_FtpRemoveDirectoryA]
test eax, eax
jne 0x450354
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Remove_Directory_Error__d
jmp 0x450132
lea eax, [ebp + 0x4fc]
push eax
push dword [0x485e28]
call dword [sym.imp.WININET.dll_FtpCreateDirectoryA]
test eax, eax
jne 0x450354
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Create_Directory_Error__d
jmp 0x450132
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, 0x466c60
lea eax, [ebp + 0x4fc]
push esi
push eax
call fcn.004526d0
pop ecx
pop ecx
test eax, eax
je 0x450354
lea eax, [ebp + 0x4fc]
push esi
push eax
call fcn.004526d0
inc eax
pop ecx
pop ecx
je 0x4502bc
push esi
lea eax, [ebp + 0x4fc]
push esi
push eax
call fcn.004526d0
pop ecx
pop ecx
inc eax
push eax
call fcn.004526d0
pop ecx
pop ecx
jmp 0x4502be
xor eax, eax
cmp eax, ebx
je 0x450354
push ebx
push 1
push 0x103
lea eax, [ebp + 0xf4]
push eax
push 1
push esi
lea eax, [ebp + 0x4fc]
push eax
call fcn.0044cdae
lea eax, [ebp + 0xf4]
push eax
push dword [0x485e28]
call dword [sym.imp.WININET.dll_FtpSetCurrentDirectoryA]
test eax, eax
je 0x450141
cmp byte [ebp + 0x4fc], 0x2f
jne 0x450335
lea eax, [ebp + 0x4fc]
push eax
call edi
test eax, eax
jle 0x450335
lea eax, [ebp + 0x4fc]
push eax
call edi
push eax
lea eax, [ebp + 0x4fd]
push eax
lea eax, [ebp + 0x4fc]
push eax
call fcn.00452ea0
add esp, 0xc
push ebx
push ebx
push 0x464a50
lea eax, [ebp + 0xf4]
push eax
lea eax, [ebp + 0x4fc]
push eax
call fcn.0044923e
jmp 0x450278
xor esi, esi
inc esi
jmp 0x450143
lea eax, [ebp + 0x4fc]
push eax
push dword [0x485e28]
call dword [sym.imp.WININET.dll_FtpDeleteFileA]
test eax, eax
jne 0x450354
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Delete_File_Error__d
jmp 0x450132
push ebx
push 2
push 0x40000000
lea eax, [ebp + 0x4fc]
push eax
push dword [0x485e28]
call dword [sym.imp.WININET.dll_FtpOpenFileA]
mov dword [ebp - 0x54], eax
cmp eax, ebx
je 0x4506d3
cmp eax, 0xffffffff
je 0x4506d3
push dword [ebp - 0x68]
call fcn.00411c73
push ebx
push edi
push 3
push ebx
push 1
push SQLAllocEnv
push dword [ebp - 0x68]
mov dword [ebp - 0x70], eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x5c], eax
cmp eax, ebx
je 0x4503df
cmp eax, 0xffffffff
jne 0x450437
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Create_File_Error__d
push dword [0x481960]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push dword [ebp - 0x54]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x450141
push ebx
push 2
push SQLAllocEnv
lea eax, [ebp + 0x4fc]
push eax
push dword [0x485e28]
call dword [sym.imp.WININET.dll_FtpOpenFileA]
mov dword [ebp - 0x54], eax
cmp eax, ebx
je 0x4506d3
cmp eax, 0xffffffff
je 0x4506d3
push 1
push 0x1000
call fcn.00452b24
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
cmp eax, ebx
jne 0x45045f
mov eax, dword [0x481960]
cmp eax, ebx
je 0x4503fa
push str.Memory_Error
push eax
call esi
jmp 0x4503fa
mov esi, dword [ebp - 0x78]
cmp esi, ebx
je 0x4504bf
cmp byte [esi], bl
je 0x4504bf
push esi
call fcn.0041408b
push ebx
push edi
push 4
push ebx
push 3
push 0xc0000000
push esi
call fcn.00413e0e
mov dword [ebp - 0x5c], eax
cmp eax, ebx
je 0x45048e
cmp eax, 0xffffffff
jne 0x4504bf
mov eax, dword [0x481960]
cmp eax, ebx
je 0x4503fa
push ebx
push 0x103
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push 0x1200
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
jmp 0x4503fa
xor esi, esi
inc esi
cmp dword [ebp + 0x628], esi
jne 0x4505fc
xor edi, edi
mov dword [ebp - 0x50], esi
lea eax, [ebp - 0x50]
push eax
push 0x700
push dword [ebp - 0x58]
push dword [ebp - 0x54]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x4505f4
cmp dword [ebp - 0x5c], ebx
je 0x45051e
cmp dword [ebp - 0x5c], 0xffffffff
je 0x45051e
push 2
push ebx
push ebx
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x50]
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x45054a
mov eax, dword [ebp - 0x6c]
cmp eax, ebx
je 0x45054a
mov ecx, dword [ebp - 0x50]
lea edx, [edi + ecx]
cmp edx, dword [ebp + 0x624]
jge 0x45054a
add eax, edi
cmp eax, ebx
je 0x45054a
cmp ecx, ebx
jbe 0x45054a
push ecx
push dword [ebp - 0x58]
push eax
call fcn.00452790
add esp, 0xc
cmp edi, ebx
jne 0x45055d
push dword [ebp - 0x64]
push str.____Downloading__s...
call fcn.0042604a
pop ecx
pop ecx
mov eax, dword [0x4800d4]
add edi, dword [ebp - 0x50]
cmp eax, ebx
je 0x4505e6
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4505e6
push dword [0x4800d4]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4505e6
mov eax, edi
cmp edi, 0x100000
jbe 0x4505c6
mov ecx, edi
shr ecx, 0x14
mov edx, ecx
shl edx, 0x14
sub eax, edx
xor edx, edx
mov esi, 0x19999
div esi
xor esi, esi
inc esi
push eax
push ecx
lea eax, [ebp + 0x4fc]
push eax
push str.___s____d._d_MB...
push ebx
push esi
push dword [0x4800d4]
call fcn.00424cda
add esp, 0x1c
jmp 0x4505e6
shr eax, 0xa
push eax
lea eax, [ebp + 0x4fc]
push eax
push str.___s____li_KB...
push ebx
push esi
push dword [0x4800d4]
call fcn.00424cda
add esp, 0x18
cmp dword [ebp - 0x50], ebx
jne 0x4504d3
jmp 0x45067c
mov dword [ebp - 0x50], ebx
jmp 0x45067c
cmp dword [ebp + 0x628], 2
jne 0x45067a
lea eax, [ebp + 0x4fc]
push eax
push str._FTP:_Uploading__s
push ebx
push esi
push dword [0x4800d4]
call fcn.00424cda
add esp, 0x14
mov dword [ebp - 0x50], esi
xor edi, edi
mov esi, 0x7ff
push ebx
push ebx
push edi
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [ebp - 0x70]
sub eax, edi
cmp eax, esi
jbe 0x450642
mov eax, esi
push ebx
lea ecx, [ebp - 0x50]
push ecx
push eax
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 0x50], ebx
je 0x4505f4
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x50]
push dword [ebp - 0x58]
push dword [ebp - 0x54]
call dword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
je 0x4505f4
add edi, dword [ebp - 0x50]
cmp dword [ebp - 0x50], ebx
jne 0x45062b
jmp 0x45067c
mov edi, ebx
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x54], ebx
je 0x45068c
push dword [ebp - 0x54]
call esi
cmp dword [ebp + 0x62c], ebx
jne 0x4506b8
mov eax, dword [0x485e28]
cmp eax, ebx
je 0x4506a6
push eax
call esi
mov dword [0x485e28], ebx
mov eax, dword [0x485e24]
cmp eax, ebx
je 0x4506b8
push eax
call esi
mov dword [0x485e24], ebx
cmp dword [ebp - 0x5c], ebx
je 0x4506c6
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x58]
call fcn.00452756
pop ecx
mov eax, edi
jmp 0x45070b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.FTP_Open_File_Error__d
jmp 0x450132
push str.InternetConnect_Error
push dword [0x481960]
call dword [sym.imp.USER32.dll_wsprintfA]
pop ecx
pop ecx
push dword [0x485e24]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [0x485e24], ebx
xor eax, eax
mov ecx, dword [ebp + 0x600]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00452dee
add ebp, 0x604
leave
ret 0x28