Function at 0x40d630
Capabilities:
Check http status code
Connect to http server
Create http request
Download and write a file
Parse url
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
Send http request
Write file on windows

Disassembly:
push 0x57c
push 0x4417f0
call fcn.0041cd30
mov dword [ebp - 0x4c], 4
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x18c], bl
mov edi, dword [ebp + 8]
push edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
call esi
test eax, eax
je 0x40dafd
push edi
call fcn.0041852a
pop ecx
test eax, eax
je 0x40dafd
cmp dword [ebp + 0x14], ebx
je 0x40d68b
lea eax, [ebp - 0x18c]
push eax
push edi
call fcn.00418c10
pop ecx
pop ecx
lea eax, [ebp - 0x18c]
push eax
call esi
test eax, eax
je 0x40d6da
push ebx
push 0x20
push 3
push ebx
push ebx
push 0x40000000
lea eax, [ebp - 0x18c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x40d6da
push ebx
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x20], ebx
ja 0x40dafd
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x30], 0x80004005
mov dword [ebp - 4], ebx
push ebx
push ebx
push ebx
push ebx
push 0x4376c8
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x44], eax
cmp eax, ebx
je 0x40da52
push 0x3c
pop esi
push esi
push ebx
lea eax, [ebp - 0x88]
push eax
call fcn.0041bdb0
add esp, 0xc
mov dword [ebp - 0x88], esi
lea eax, [ebp - 0x38c]
mov dword [ebp - 0x78], eax
mov eax, 0x100
mov dword [ebp - 0x74], eax
xor ecx, ecx
mov word [ebp - 0x70], cx
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], eax
lea ecx, [ebp - 0x48c]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x88]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push edi
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
push ebx
push ebx
push 3
push 0x4373aa
push 0x4373ab
push dword [ebp - 0x70]
push dword [ebp - 0x78]
push dword [ebp - 0x44]
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [ebp - 0x34], eax
cmp eax, ebx
je 0x40da52
lea eax, [ebp - 0x28c]
cmp dword [ebp - 0x58], ebx
je 0x40d7a2
push dword [ebp - 0x5c]
jmp 0x40d7a7
push 0x4376d0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x50], ebx
je 0x40d7c3
push dword [ebp - 0x54]
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x2c], ebx
push ebx
push 0x4c00000
push ebx
push 0x4373b2
push 0x4376d4
lea eax, [ebp - 0x28c]
push eax
push 0x4376e0
push dword [ebp - 0x34]
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov dword [ebp - 0x24], eax
cmp eax, ebx
je 0x40da52
xor esi, esi
inc esi
mov dword [ebp - 0x1c], esi
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x24]
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
jne 0x40d870
cmp dword [ebp - 0x1c], ebx
je 0x40da52
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
sub ecx, 0x2ee2
je 0x40d85a
sub ecx, 5
je 0x40d85a
sub ecx, 0x16
je 0x40d85a
mov dword [ebp - 0x1c], ebx
push ebx
push 7
push eax
push dword [ebp - 0x24]
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.WININET.dll_InternetErrorDlg]
cmp eax, 0x2f00
jne 0x40d806
jmp 0x40d803
mov dword [ebp - 0x1c], ebx
cmp dword [ebp + 0x18], ebx
je 0x40d806
push ebx
push ebx
push eax
push ebx
call fcn.0040d486
add esp, 0x10
jmp 0x40d806
cmp dword [ebp - 0x1c], ebx
je 0x40da52
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x38], ebx
push ebx
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x38]
push eax
push 0x20000013
mov edi, dword [ebp - 0x24]
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
jne 0x40d8a8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x38]
cmp edx, 0x197
jne 0x40d906
cmp dword [ebp - 0x1c], ebx
je 0x40d906
push ebx
push 7
push esi
push edi
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.WININET.dll_InternetErrorDlg]
cmp eax, 0x2f00
je 0x40d8dd
mov dword [ebp - 0x1c], ebx
jmp 0x40d8af
push ebx
push ebx
push ebx
push ebx
push edi
call dword [sym.imp.WININET.dll_HttpSendRequestA]
mov dword [ebp - 0x4c], 4
push ebx
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x38]
push eax
push 0x20000013
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
jmp 0x40d8af
cmp edx, 0xc8
jne 0x40d94b
mov dword [ebp - 0x20], ebx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp + 0xc]
add eax, ecx
lea edx, [ebp - 0x20]
push edx
mov edx, dword [ebp + 0x10]
sub edx, ecx
push edx
push eax
push edi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x40d935
mov eax, dword [ebp - 0x20]
add dword [ebp - 0x28], eax
cmp dword [ebp - 0x20], ebx
ja 0x40d90e
cmp dword [ebp - 0x28], ebx
jbe 0x40da49
mov dword [ebp - 0x30], ebx
jmp 0x40da49
lea eax, [edx - 0x190]
cmp eax, 0xc7
ja 0x40da2e
mov eax, 0x193
cmp edx, eax
je 0x40d9fe
add eax, 0x61
cmp edx, eax
jne 0x40d997
cmp dword [ebp + 0x18], ebx
je 0x40da12
push 1
push ebx
push eax
push ebx
call fcn.0040d486
add esp, 0x10
test eax, eax
je 0x40da12
mov dword [ebp - 0x2c], 1
jmp 0x40da12
mov ecx, 0x1f7
cmp edx, ecx
jne 0x40d9f6
cmp dword [ebp - 0x3c], 5
jge 0x40d9d4
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], ebx
jl 0x40d9c1
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
dec dword [ebp - 0x48]
jmp 0x40d9ac
inc dword [ebp - 0x3c]
add dword [ebp - 0x40], 0x1e
mov dword [ebp - 0x2c], 1
jmp 0x40d7cc
cmp dword [ebp + 0x18], ebx
je 0x40da12
push 1
push ebx
push ecx
push ebx
call fcn.0040d486
add esp, 0x10
test eax, eax
je 0x40da12
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], 0x3c
jmp 0x40d9c8
cmp edx, 0x194
je 0x40da12
xor ecx, ecx
cmp dword [ebp + 0x18], ebx
push ebx
sete cl
push ecx
push eax
push ebx
call fcn.0040d486
add esp, 0x10
xor eax, eax
cmp dword [ebp - 0x38], 0x194
setne al
dec eax
and eax, 0x6c1fd
add eax, 0x80004005
mov dword [ebp - 0x30], eax
jmp 0x40da49
push ebx
xor eax, eax
cmp dword [ebp + 0x18], ebx
sete al
push eax
push edx
push ebx
call fcn.0040d486
add esp, 0x10
mov dword [ebp - 0x30], 0x80004005
cmp dword [ebp - 0x2c], ebx
jne 0x40d7cc
or dword [ebp - 4], 0xffffffff
call fcn.0040dad2
cmp dword [ebp - 0x30], ebx
jne 0x40dacb
lea eax, [ebp - 0x18c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x40dacb
push ebx
push 0x20
push 4
push ebx
push ebx
push 0x40000000
lea eax, [ebp - 0x18c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x40dacb
push ebx
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x28]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0x1c], ebx
je 0x40dacb
push 0x20
push 0x800c
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
lea eax, [ebp - 0x18c]
push eax
call fcn.00410d85
add esp, 0x14
mov eax, dword [ebp - 0x30]
jmp 0x40daff
xor eax, eax
call fcn.0041cd6b
ret