Function at 0x40e441
Capabilities:
Connect to http server
Create http request
Get http content length
Parse url
Send data
Send http request

Disassembly:
push ebp
lea ebp, [esp - 0x68]
mov eax, 0x2e34
call fcn.00416300
mov eax, dword [0x42ea70]
xor eax, ebp
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x74]
push ebx
push esi
mov esi, dword [ebp + 0x70]
mov dword [ebp - 0x2d80], eax
mov eax, dword [ebp + 0x78]
push edi
mov dword [ebp - 0x2d84], eax
mov eax, dword [ebp + 0x7c]
push 2
mov dword [ebp - 0x2d54], eax
pop edi
lea eax, [ebp - 0x2d58]
push eax
xor ebx, ebx
push esi
mov dword [0x4304f8], ebx
mov dword [0x4304f4], ebx
mov dword [0x4304f0], edi
call fcn.0040bb93
pop ecx
pop ecx
cmp eax, edi
je 0x40e8dc
cmp eax, ebx
je 0x40e4b4
mov eax, edi
jmp 0x40e8df
push 0x3c
pop edi
push edi
lea eax, [ebp - 0x2dcc]
push ebx
push eax
mov dword [ebp - 0x2d64], ebx
mov dword [ebp - 0x2d74], 4
call fcn.004140e0
lea eax, [ebp - 0x284]
mov dword [ebp - 0x2dbc], eax
add esp, 0xc
lea eax, [ebp - 0x16b4]
mov dword [ebp - 0x2da0], eax
lea eax, [ebp - 0x2dcc]
push eax
push ebx
push ebx
push esi
mov dword [ebp - 0x2dcc], edi
mov dword [ebp - 0x2d9c], 0x824
mov dword [ebp - 0x2db8], 0x100
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
je 0x40e8dc
lea eax, [ebp - 0x284]
push eax
call fcn.00416cec
pop ecx
test eax, eax
jbe 0x40e8dc
push ebx
push ebx
push ebx
push ebx
push str.Better_Installer_Mozilla_
call dword [sym.imp.WININET.dll_InternetOpenW]
push ebx
push ebx
push 3
push ebx
push ebx
push dword [ebp - 0x2db4]
lea ecx, [ebp - 0x284]
push ecx
push eax
mov dword [ebp - 0x2d70], eax
call dword [sym.imp.WININET.dll_InternetConnectW]
mov dword [ebp - 0x2d60], eax
cmp eax, ebx
je 0x40e8dc
push ebx
push 0x80000000
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x16b4]
push ecx
push 0x424668
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov dword [ebp - 0x2d5c], eax
cmp eax, ebx
je 0x40e8bf
push 8
pop ecx
lea eax, [ebp + 0x44]
push 0x20000000
mov esi, str.Range:_bytes0_
lea edi, [ebp + 0x44]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.00416cec
pop ecx
push eax
lea eax, [ebp + 0x44]
push eax
push dword [ebp - 0x2d5c]
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x2d5c]
call dword [sym.imp.WININET.dll_HttpSendRequestW]
mov esi, dword [sym.imp.WININET.dll_HttpQueryInfoW]
push 4
pop edi
push ebx
lea eax, [ebp - 0x2d74]
push eax
lea eax, [ebp - 0x2d64]
push eax
push 0x20000013
push dword [ebp - 0x2d5c]
mov dword [ebp - 0x2d64], ebx
mov dword [ebp - 0x2d74], edi
call esi
mov eax, dword [ebp - 0x2d64]
add eax, 0xffffff38
cmp eax, 0x63
ja 0x40e8ac
push ebx
lea eax, [ebp - 0x2d88]
push eax
lea eax, [ebp - 0x2d68]
push eax
push 0x20000005
push dword [ebp - 0x2d5c]
mov dword [ebp - 0x2d88], edi
call esi
mov eax, dword [ebp - 0x2d68]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [ebp - 0x2d6c], 0x3e8
cmp eax, dword [ebp - 0x2d58]
jne 0x40e885
mov ecx, dword [ebp - 0x2d54]
push dword [ebp - 0x2d5c]
mov dword [ecx], eax
call edi
push ebx
push 0x80000000
push ebx
push ebx
push ebx
lea eax, [ebp - 0x16b4]
push eax
push 0x424668
push dword [ebp - 0x2d60]
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov dword [ebp - 0x2d54], eax
cmp eax, ebx
je 0x40e8a8
mov eax, dword [ebp - 0x2d58]
mov ecx, eax
shr ecx, 1
push ecx
shr eax, 2
push eax
lea eax, [ebp - 0x84]
push str.Range:_bytes_d__d
push eax
call fcn.0040b236
add esp, 0x10
lea eax, [ebp - 0x84]
push 0x20000000
push eax
call fcn.00416cec
pop ecx
push eax
lea eax, [ebp - 0x84]
push eax
push dword [ebp - 0x2d54]
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x2d54]
call dword [sym.imp.WININET.dll_HttpSendRequestW]
push ebx
lea eax, [ebp - 0x2d6c]
push eax
lea eax, [ebp - 0x66c]
push eax
push 0x35
push dword [ebp - 0x2d5c]
call esi
test eax, eax
je 0x40e889
mov eax, dword [ebp - 0x2d6c]
dec eax
cmp eax, 0x3e6
ja 0x40e889
cmp dword [ebp - 0x2d68], 0x18
jbe 0x40e885
push 8
push dword [ebp - 0x2d68]
call fcn.00417230
push 0x169c
mov dword [ebp - 0x2d90], eax
mov dword [ebp - 0x2d7c], eax
lea eax, [ebp - 0x2d50]
push ebx
push eax
mov dword [ebp - 0x2d78], edx
mov dword [ebp - 0x2d54], ebx
mov dword [ebp - 0x2d4c], ebx
call fcn.004140e0
mov esi, dword [sym.imp.SHLWAPI.dll_StrCpyW]
add esp, 0x14
mov dword [ebp - 0x2d58], ebx
cmp dword [ebp - 0x2d78], ebx
mov eax, dword [ebp - 0x2d90]
mov dword [ebp - 0x2d48], eax
jle 0x40e7a9
inc eax
dec dword [ebp - 0x2d78]
mov dword [ebp - 0x2d48], eax
mov eax, dword [ebp - 0x2d54]
mov dword [ebp - 0x2d38], eax
mov eax, dword [ebp - 0x2d48]
add dword [ebp - 0x2d54], eax
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x28fc]
push eax
mov dword [ebp - 0x2d3c], ebx
call esi
lea eax, [ebp - 0x16b4]
push eax
lea eax, [ebp - 0x26fc]
push eax
call esi
mov ax, word [ebp - 0x2db4]
mov word [ebp - 0x2d30], ax
mov eax, dword [ebp - 0x2d58]
push eax
push dword [ebp - 0x2d80]
mov dword [ebp - 0x2920], eax
lea eax, [ebp - 0x2d2e]
push str._s._d
push eax
mov dword [ebp - 0x2928], ebx
mov dword [ebp - 0x292c], ebx
mov dword [ebp - 0x2924], ebx
mov dword [ebp - 0x291c], ebx
mov dword [ebp - 0x2918], ebx
mov dword [ebp - 0x2910], ebx
mov dword [ebp - 0x290c], ebx
mov dword [ebp - 0x2908], ebx
mov dword [ebp - 0x2904], ebx
mov dword [ebp - 0x2914], ebx
mov dword [ebp - 0x2900], ebx
call fcn.0040b236
mov ecx, dword [ebp - 0x2d84]
add esp, 0x10
lea eax, [ebp - 0x2d50]
push eax
call fcn.0040e05f
inc dword [ebp - 0x2d58]
cmp dword [ebp - 0x2d58], 8
jl 0x40e788
jmp 0x40e8b5
push 2
jmp 0x40e8b4
push dword [ebp - 0x2d54]
call edi
push 2
pop esi
push dword [ebp - 0x2d60]
call edi
push dword [ebp - 0x2d70]
call edi
mov eax, esi
jmp 0x40e8df
push 3
jmp 0x40e893
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push 3
pop ebx
push dword [ebp - 0x2d5c]
call edi
jmp 0x40e8c8
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push 3
pop ebx
push dword [ebp - 0x2d60]
call edi
push dword [ebp - 0x2d70]
call edi
mov eax, ebx
jmp 0x40e8df
push 3
pop eax
mov ecx, dword [ebp + 0x64]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004144c5
add ebp, 0x68
leave
ret