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

Disassembly:
push ebp
lea ebp, [esp - 0x21a4]
mov eax, 0x2224
call fcn.004933d0
mov eax, dword [0x4f51d0]
xor eax, ebp
mov dword [ebp + 0x21a0], eax
mov eax, dword [ebp + 0x21ac]
push ebx
push esi
xor ebx, ebx
mov esi, ecx
mov dword [ebp - 0x70], eax
mov byte [ebp - 0x65], bl
cmp dword [esi + 0x14], ebx
je 0x45a199
cmp dword [eax + 0x14], ebx
je 0x45a199
push ebx
push ebx
push ebx
push ebx
push str.Mozilla_4.0__compatible__MSIE_7.0__Windows_NT_6.0__Trident_4.0__.NET_CLR_2.0.50727__Media_Center_PC_5.0__.NET_CLR_3.0.04506__.NET_CLR_3.5.21022_
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x74], eax
cmp eax, ebx
je 0x45a199
push edi
lea edi, [ebp - 0x74]
call fcn.00459dc7
cmp dword [esi + 0x18], 8
jb 0x45a03b
mov esi, dword [esi + 4]
jmp 0x45a03e
add esi, 4
push ebx
push SysReAllocString
push ebx
push ebx
push esi
push dword [ebp - 0x74]
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov edi, eax
mov dword [ebp - 0x78], edi
cmp edi, ebx
je 0x45a18f
xor eax, eax
push 0x1fe
mov word [ebp + 0x1fa0], ax
lea eax, [ebp + 0x1fa2]
push ebx
push eax
call fcn.00492200
add esp, 0xc
push ebx
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x1fa0]
push eax
push 0x13
push edi
mov dword [ebp - 0x7c], 0x100
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x45a186
mov edx, 0x4e089c
lea eax, [ebp + 0x1fa0]
mov cx, word [eax]
cmp cx, word [edx]
jne 0x45a0d0
cmp cx, bx
je 0x45a0cc
mov cx, word [eax + 2]
cmp cx, word [edx + 2]
jne 0x45a0d0
add eax, 4
add edx, 4
cmp cx, bx
jne 0x45a0aa
xor eax, eax
jmp 0x45a0d5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x45a186
mov eax, dword [ebp - 0x70]
cmp dword [eax + 0x18], 8
jb 0x45a0eb
mov eax, dword [eax + 4]
jmp 0x45a0ee
add eax, 4
push ebx
push 0x80
push 2
push ebx
push ebx
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x70], eax
cmp eax, 0xffffffff
je 0x45a186
mov esi, 0x2000
push esi
lea eax, [ebp - 0x63]
push ebx
push eax
mov byte [ebp - 0x64], bl
call fcn.00492200
add esp, 0xc
lea eax, [ebp - 0x6c]
push eax
push esi
lea eax, [ebp - 0x64]
push eax
push edi
mov edi, dword [sym.imp.WININET.dll_InternetReadFile]
jmp 0x45a16e
cmp dword [ebp - 0x6c], ebx
je 0x45a179
push ebx
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x6c]
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x70]
mov dword [ebp - 0x80], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
lea eax, [ebp - 0x63]
push ebx
push eax
mov byte [ebp - 0x64], bl
call fcn.00492200
add esp, 0xc
lea eax, [ebp - 0x6c]
push eax
push esi
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x78]
mov dword [ebp - 0x6c], ebx
call edi
test eax, eax
jne 0x45a134
jmp 0x45a17d
mov byte [ebp - 0x65], 1
push dword [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x78]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x74]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
pop edi
mov ecx, dword [ebp + 0x21a0]
mov al, byte [ebp - 0x65]
pop esi
xor ecx, ebp
pop ebx
call fcn.0048c64c
add ebp, 0x21a4
leave
ret