Function at 0x40114a
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:
jmp 0x40a4c0
mov eax, 0x1010
call fcn.00419180
push ebx
push ebp
push esi
push edi
push 0
push 0
push 0
push 1
push 0x10a3b50
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x18], ebp
jne 0x40a51c
push 0x10a3b34
push 0x10ac710
call fcn.004013cf
add esp, 8
mov esi, eax
mov ecx, esi
push 0xa
call fcn.00401154
mov ecx, esi
call fcn.0040134d
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x1010
ret
mov edi, dword [esp + 0x1024]
mov eax, dword [edi + 4]
test eax, eax
jne 0x40a52f
mov eax, 0x48a41c
push 0
push SysReAllocString
push 0
push 0
push eax
push ebp
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x14], ebx
jne 0x40a5c9
push 0x10a3b24
push 0x10ac710
call fcn.004013cf
mov esi, eax
mov eax, dword [edi + 4]
add esp, 8
test eax, eax
jne 0x40a56c
mov eax, 0x48a41c
push eax
push esi
call fcn.004013cf
add esp, 8
mov ecx, esi
push 0xa
call fcn.00401154
mov eax, dword [esi]
xor edi, edi
mov ecx, dword [eax + 4]
lea eax, [ecx + esi]
mov cl, byte [ecx + esi + 4]
test cl, 6
jne 0x40a5a6
mov eax, dword [eax + 0x28]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x40a5a6
mov edi, 4
mov eax, dword [esi]
push 0
push edi
mov ecx, dword [eax + 4]
add ecx, esi
call fcn.00401433
push ebp
call dword [sym.imp.WININET.dll_InternetCloseHandle]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x1010
ret
mov edi, dword [esp + 0x1028]
mov eax, dword [edi + 4]
test eax, eax
jne 0x40a5dc
mov eax, 0x48a41c
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x40a68f
push 0x10a3b10
push 0x10ac710
call fcn.004013cf
mov esi, eax
mov eax, dword [edi + 4]
add esp, 8
test eax, eax
jne 0x40a620
mov eax, 0x48a41c
push eax
push esi
call fcn.004013cf
add esp, 8
mov ecx, esi
push 0xa
call fcn.00401154
mov ecx, dword [esi]
xor edi, edi
mov edx, dword [ecx + 4]
mov cl, byte [edx + esi + 4]
test cl, 6
lea eax, [edx + esi]
jne 0x40a65a
mov eax, dword [eax + 0x28]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x40a65a
mov edi, 4
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
test edi, edi
je 0x40a672
mov edx, dword [ecx + 4]
push 0
or edx, edi
push edx
call fcn.004012d5
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
mov eax, dword [esp + 0x18]
push eax
call esi
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x1010
ret
mov eax, dword [esp + 0x14]
mov esi, dword [sym.imp.WININET.dll_InternetReadFile]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x20]
push ecx
push 0x1000
push edx
push eax
mov bl, 1
call esi
test eax, eax
je 0x40a786
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x10]
test eax, eax
jbe 0x40a786
lea ecx, [esp + 0x1c]
push 0
push ecx
lea edx, [esp + 0x28]
push eax
push edx
push ebp
call edi
test eax, eax
je 0x40a706
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jne 0x40a706
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x24]
push 0x1000
push edx
push eax
call esi
test eax, eax
jne 0x40a6bb
jmp 0x40a786
push 0x10a3afc
push 0x10ac710
call fcn.004013cf
mov ecx, dword [esp + 0x1030]
mov esi, eax
add esp, 8
mov eax, dword [ecx + 4]
test eax, eax
jne 0x40a72d
mov eax, 0x48a41c
push eax
push esi
call fcn.004013cf
add esp, 8
mov ecx, esi
push 0xa
call fcn.00401154
mov edx, dword [esi]
xor edi, edi
mov eax, dword [edx + 4]
add eax, esi
test byte [eax + 4], 6
jne 0x40a763
mov eax, dword [eax + 0x28]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x40a763
mov edi, 4
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
test edi, edi
je 0x40a784
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x28]
or eax, edi
test edx, edx
jne 0x40a77c
or al, 4
push 0
push eax
call fcn.0042bd1a
xor bl, bl
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x14]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ecx
call esi
mov edx, dword [esp + 0x18]
push edx
call esi
test bl, bl
je 0x40a50f
push 0x10a3ae8
push 0x10ac710
call fcn.004013cf
mov esi, eax
mov eax, dword [esp + 0x1030]
add esp, 8
mov eax, dword [eax + 4]
test eax, eax
jne 0x40a7d0
mov eax, 0x48a41c
push eax
push esi
call fcn.004013cf
add esp, 8
mov ecx, esi
push 0xa
call fcn.00401154
mov ecx, dword [esi]
xor edi, edi
mov edx, dword [ecx + 4]
mov cl, byte [edx + esi + 4]
test cl, 6
lea eax, [edx + esi]
jne 0x40a80a
mov eax, dword [eax + 0x28]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x40a80a
mov edi, 4
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
test edi, edi
je 0x40a82b
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x28]
or eax, edi
test edx, edx
jne 0x40a823
or al, 4
push 0
push eax
call fcn.0042bd1a
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x1010
ret