Function at 0x5043c0
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
mov ebp, esp
sub esp, 0x590
mov eax, dword [0x5deba8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
mov dword [ebp - 4], 0
push 0x400
push 0
lea eax, [ebp - 0x410]
push eax
call fcn.005533a0
add esp, 0xc
mov dword [ebp - 0xc], 0
push 0
push 0
push 0
push 1
push 0
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x504430
cmp dword [ebp + 0x14], 0
je 0x50442b
push 0x10
push 0x59ea7c
mov ecx, dword [ebp + 8]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x504691
push 4
lea edx, [ebp + 0x10]
push edx
push 2
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionW]
push 0
push 0x102
push 0
push 0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x414], 0
jne 0x5044b2
cmp dword [ebp + 0x14], 0
je 0x5044ad
mov ecx, 0x13
mov esi, str.Internet_open_url_failed__error_code
lea edi, [ebp - 0x518]
rep movsd dword es:[edi], dword [esi]
push 0xb4
push 0
lea eax, [ebp - 0x4cc]
push eax
call fcn.005533a0
add esp, 0xc
push 0x10
lea ecx, [ebp - 0x518]
push ecx
mov edx, dword [ebp + 8]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x504687
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x51c], eax
cmp dword [ebp - 0x51c], 0xffffffff
jne 0x5044fb
cmp dword [ebp + 0x14], 0
je 0x5044f6
push 0x10
push str.Internet_open_failed_
mov ecx, dword [ebp + 8]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x50467a
xor edx, edx
mov word [ebp - 0x578], dx
push 0x3e
push 0
lea eax, [ebp - 0x576]
push eax
call fcn.005533a0
add esp, 0xc
mov dword [ebp - 0x528], 0x40
mov dword [ebp - 0x534], 0
lea ecx, [ebp - 0x534]
push ecx
lea edx, [ebp - 0x528]
push edx
lea eax, [ebp - 0x578]
push eax
push 5
mov ecx, dword [ebp - 0x414]
push ecx
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
lea edx, [ebp - 0x578]
push edx
call fcn.0055a323
add esp, 4
mov dword [ebp - 0x580], eax
fild dword [ebp - 0x580]
fstp qword [ebp - 0x530]
cmp dword [ebp + 0x18], 0
je 0x5045be
push 0
fld qword [ebp - 0x530]
fnstcw word [ebp - 0x582]
movzx eax, word [ebp - 0x582]
or eax, 0xc00
mov dword [ebp - 0x588], eax
fldcw word [ebp - 0x588]
fistp qword [ebp - 0x590]
fldcw word [ebp - 0x582]
mov eax, dword [ebp - 0x590]
push eax
push 0x3f2
mov ecx, dword [ebp + 0x18]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0xc], 1
mov edx, 1
test edx, edx
je 0x50466d
lea eax, [ebp - 4]
push eax
push 0x400
lea ecx, [ebp - 0x410]
push ecx
mov edx, dword [ebp - 0x414]
push edx
call dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [ebp - 0x57c], eax
cmp dword [ebp - 4], 0
jne 0x5045fd
jmp 0x50466d
push 0
lea eax, [ebp - 0x520]
push eax
mov ecx, dword [ebp - 4]
push ecx
lea edx, [ebp - 0x410]
push edx
mov eax, dword [ebp - 0x51c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x524], eax
cmp dword [ebp - 0x524], 0
jne 0x50464f
cmp dword [ebp + 0x14], 0
je 0x504646
push 0x10
push str.Write_to_file_failed_
mov ecx, dword [ebp + 8]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0xc], 0
jmp 0x50466d
cmp dword [ebp + 0x18], 0
je 0x504668
push 0
push 0
push 0x3fc
mov edx, dword [ebp + 0x18]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x5045c5
mov eax, dword [ebp - 0x51c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x414]
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0xc]
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055338c
mov esp, ebp
pop ebp
ret