Function at 0x401935
Capabilities:
Check http status code
Connect to http server
Create http request
Download and write a file
Parse url
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0xc04]
sub esp, 0xc04
push 0xfffffffffffffffe
push 0x42d130
push 0x413f50
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x431420]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0xc00], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc0c]
mov eax, dword [ebp + 0xc10]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0xc14]
mov dword [ebp - 0x1c], eax
xor esi, esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 1
mov dword [ebp - 4], esi
push esi
push esi
push esi
push esi
push str.jupdate
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x28], eax
cmp eax, esi
je 0x401b75
push 0x3c
pop ebx
push ebx
push esi
lea eax, [ebp - 0x7c]
push eax
call fcn.004139c0
add esp, 0xc
mov dword [ebp - 0x7c], ebx
lea eax, [ebp + 0x400]
mov dword [ebp - 0x6c], eax
mov eax, 0x400
mov dword [ebp - 0x68], eax
xor ecx, ecx
mov word [ebp - 0x64], cx
lea ecx, [ebp + 0x800]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], eax
lea ecx, [ebp]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x7c]
push eax
push esi
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push edi
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
push esi
push esi
push 3
mov edi, 0x4266a7
push edi
push edi
push dword [ebp - 0x64]
push dword [ebp - 0x6c]
push dword [ebp - 0x28]
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [ebp - 0x2c], eax
cmp eax, esi
je 0x401b75
cmp dword [ebp - 0x4c], esi
je 0x401a40
push dword [ebp - 0x50]
jmp 0x401a45
push 0x426748
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x44], esi
je 0x401a5f
push dword [ebp - 0x48]
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
push 0x4400000
push esi
push edi
push str.HTTP_1.1
mov ebx, dword [ebp - 0x1c]
push ebx
push 0x426738
push dword [ebp - 0x2c]
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov edi, eax
mov dword [ebp - 0x24], edi
cmp edi, esi
je 0x401b75
push esi
push esi
push esi
push esi
push edi
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
je 0x401b75
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x3c], 4
push esi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
push 0x20000013
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x34], 0xc8
jne 0x401b78
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x38], esi
jne 0x401b01
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 0xc18]
push ebx
push edi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x401b78
cmp dword [ebp - 0x1c], esi
jbe 0x401b78
mov dword [ebp - 0x20], 1
jmp 0x401b78
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x30], esi
push esi
push 0x80
push 2
push esi
push esi
push 0x40000000
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x401b78
mov dword [ebp - 0x20], 1
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 0xc18]
push ebx
push dword [ebp - 0x24]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x401b66
cmp dword [ebp - 0x1c], esi
jbe 0x401b62
push esi
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x1c]
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x30], eax
cmp eax, esi
jne 0x401b2d
jmp 0x401b69
mov dword [ebp - 0x20], esi
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x30], esi
ja 0x401b78
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], 0xfffffffe
call fcn.00401bac
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xc00]
xor ecx, ebp
call fcn.00413f3b
add ebp, 0xc04
leave
ret