Function at 0x42f310
Capabilities:
Download and write a file
Hash data with md5
Read data from internet
Receive and write data from server to client
Receive data
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2084
call fcn.00446fd0
mov eax, dword [0x469090]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov esi, dword [edi]
lea ecx, [ebp - 0x2074]
push ecx
push 0x2000
lea edx, [ebp - 0x2018]
mov dword [ebp - 0x207c], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
push edx
push eax
mov dword [ebp - 0x2078], eax
mov dword [ebp - 0x2074], ebx
mov dword [ebp - 0x2070], 0x67452301
mov dword [ebp - 0x206c], 0xefcdab89
mov dword [ebp - 0x2068], 0x98badcfe
mov dword [ebp - 0x2064], 0x10325476
mov dword [ebp - 0x2060], ebx
mov dword [ebp - 0x205c], ebx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x42f467
mov edi, edi
mov eax, dword [ebp - 0x2074]
cmp eax, ebx
je 0x42f486
push ebx
lea ecx, [ebp - 0x2080]
push ecx
push eax
mov eax, dword [ebp - 0x207c]
lea edx, [ebp - 0x2018]
push edx
push eax
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x42f524
mov eax, dword [ebp - 0x2080]
cmp dword [ebp - 0x2074], eax
jne 0x42f524
push eax
lea ecx, [ebp - 0x2018]
push ecx
lea eax, [ebp - 0x2070]
call fcn.004369a0
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0x2074]
add dword [edi + 0x10], edx
mov eax, dword [edi + 0x10]
add esp, 8
push ecx
push 0x64
push eax
call dword [sym.imp.KERNEL32.DLL_MulDiv]
cmp eax, 0x64
je 0x42f433
cmp eax, dword [edi + 0xc]
je 0x42f433
mov dword [edi + 0xc], eax
cmp esi, ebx
je 0x42f433
mov ecx, dword [esi + 0x224]
cmp ecx, ebx
je 0x42f433
push esi
push eax
call ecx
cmp byte [esi + 0x230], bl
jne 0x42f4f8
mov ecx, dword [ebp - 0x2078]
lea edx, [ebp - 0x2074]
push edx
push 0x2000
lea eax, [ebp - 0x2018]
push eax
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x42f3a0
mov ecx, edi
call fcn.0042ed00
mov ecx, dword [esi + 0x204]
cmp ecx, ebx
je 0x42f544
push 0x45fbbc
jmp 0x42f53a
mov eax, dword [edi + 0x10]
cmp eax, dword [edi + 4]
jne 0x42f4e2
lea ecx, [ebp - 0x14]
push ecx
lea esi, [ebp - 0x2070]
mov byte [edi + 8], 1
call fcn.00436ab0
mov edx, dword [edi + 0x18]
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
xor eax, eax
add esp, 4
mov word [edx], ax
xor esi, esi
movzx ecx, byte [ebp + esi - 0x14]
mov eax, dword [edi + 0x18]
push ecx
push eax
push str._s_02x
push eax
call ebx
inc esi
add esp, 0x10
cmp esi, 0x10
jb 0x42f4b4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043722b
mov esp, ebp
pop ebp
ret 8
mov dword [edi + 0x10], ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043722b
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esi + 0x204]
cmp ecx, ebx
je 0x42f572
push str.Canceled
push str.ERROR
call fcn.0040c980
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043722b
mov esp, ebp
pop ebp
ret 8
mov ecx, edi
call fcn.0042ed00
mov ecx, dword [esi + 0x204]
cmp ecx, ebx
je 0x42f544
push 0x45fbf0
push str.ERROR
call fcn.0040c980
mov edi, dword [edi]
dec dword [edi + 0x21c]
cmp dword [edi + 0x21c], ebx
jle 0x42f561
mov edx, dword [edi + 0x220]
push edx
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov eax, 0x2710
add dword [edi + 0x218], eax
add dword [edi + 0x214], eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043722b
mov esp, ebp
pop ebp
ret 8