Function at 0x449a9a
Capabilities:
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 0x74
mov eax, 0x4e0375
call fcn.004a9487
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x7c], edi
mov dword [ebp - 4], ebx
push ebx
lea eax, [edi + 0x10420]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
test eax, eax
jne 0x449b56
push 1
lea eax, [edi + 0x10420]
lea esi, [edi + 0x10418]
push eax
mov dword [esi], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push esi
push 0x10400
lea eax, [edi + 0x18]
push eax
push dword [edi + 0x14]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x449b56
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0x3e5
jne 0x449b0c
xor al, al
jmp 0x449d9f
push ebx
lea eax, [edi + 0x10420]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov eax, dword [edi + 0x10458]
push str.InternetReadFile_fail
lea ecx, [ebp - 0x30]
mov dword [eax + 0x1c], esi
call fcn.00403110
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.0042ee4e
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x78]
call fcn.0042e970
push 0x504c84
lea eax, [ebp - 0x78]
push eax
call fcn.004a935b
push ebx
lea eax, [edi + 0x10420]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov esi, dword [edi + 0x10418]
test esi, esi
je 0x449d9d
mov edx, dword [edi + 0x1041c]
test edx, edx
je 0x449b96
cmp edx, 0xffffffff
je 0x449b96
push edx
push esi
lea eax, [edi + 0x18]
push 1
push eax
call fcn.004a5ea7
add esp, 0x10
jmp 0x449ab0
mov eax, dword [edi + 0x10454]
cmp byte [eax + 0x59], 0
jne 0x449bb8
mov eax, dword [edi + 0x10458]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
add ecx, esi
cmp ecx, dword [edi + 0x10434]
jbe 0x449bbd
cmp edx, 0xffffffff
jne 0x449c05
mov esi, dword [edi + 0x10458]
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
cmp eax, 0x1400000
jbe 0x449be4
mov dword [esi + 0x1c], 8
mov eax, dword [edi + 0x10458]
mov ecx, edi
jmp 0x449d95
push dword [ebp - 0x7c]
lea edx, [edi + 0x18]
add edx, dword [edi + 0x10418]
lea eax, [edi + 0x18]
push edx
push eax
push dword [esi + 0x10]
lea ecx, [esi + 0xc]
call fcn.00449f20
jmp 0x449ab0
lea ecx, [ebp - 0x30]
call fcn.0044871f
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00449e17
mov ecx, eax
mov dword [edi + 0x1041c], ecx
test ecx, ecx
je 0x449cb6
cmp ecx, 0xffffffff
je 0x449cb6
mov edx, dword [edi + 0x10458]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 0x10]
je 0x449c58
mov eax, dword [edx + 0x10]
sub eax, dword [edx + 0xc]
push ecx
push eax
push 1
push dword [edx + 0xc]
call fcn.004a5ea7
add esp, 0x10
push dword [edi + 0x1041c]
lea eax, [edi + 0x18]
push dword [edi + 0x10418]
push 1
push eax
call fcn.004a5ea7
mov eax, dword [ebp - 0x20]
mov ecx, dword [edi + 0x10458]
add esp, 0x10
lea eax, [eax*2 + 2]
push eax
add ecx, 0xc
call fcn.00406a50
mov eax, dword [edi + 0x10458]
cmp dword [ebp - 0x1c], 8
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x30]
cmovae edx, dword [ebp - 0x30]
lea eax, [eax*2 + 2]
push eax
push edx
push ecx
call fcn.004a8c80
add esp, 0xc
jmp 0x449cd8
push dword [ebp - 0x7c]
mov esi, dword [edi + 0x10458]
lea edx, [edi + 0x18]
add edx, dword [edi + 0x10418]
lea eax, [edi + 0x18]
push edx
push eax
push dword [esi + 0x10]
lea ecx, [esi + 0xc]
call fcn.00449f20
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00403170
jmp 0x449ab0
push dword [eax + 0x1c]
call fcn.00448b0f
mov al, 1
call fcn.004a93d9
ret