Function at 0x4128c0
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:
mov eax, 0x1010
call fcn.004254d0
push ebx
push ebp
push esi
push edi
push 0
push 0
push 0
push 1
push str.DownloadApp
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x18], ebp
jne 0x41291c
push 0x47597c
push 0x47d240
call fcn.004138e0
add esp, 8
mov esi, eax
mov ecx, esi
push 0xa
call fcn.00413290
mov ecx, esi
call fcn.00413400
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 0x41292f
mov eax, 0x45f3dc
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 0x4129c9
push 0x47596c
push 0x47d240
call fcn.004138e0
mov esi, eax
mov eax, dword [edi + 4]
add esp, 8
test eax, eax
jne 0x41296c
mov eax, 0x45f3dc
push eax
push esi
call fcn.004138e0
add esp, 8
mov ecx, esi
push 0xa
call fcn.00413290
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 0x4129a6
mov eax, dword [eax + 0x28]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x4129a6
mov edi, 4
mov eax, dword [esi]
push 0
push edi
mov ecx, dword [eax + 4]
add ecx, esi
call fcn.00413460
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 0x4129dc
mov eax, 0x45f3dc
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 0x412a8f
push 0x47595c
push 0x47d240
call fcn.004138e0
mov esi, eax
mov eax, dword [edi + 4]
add esp, 8
test eax, eax
jne 0x412a20
mov eax, 0x45f3dc
push eax
push esi
call fcn.004138e0
add esp, 8
mov ecx, esi
push 0xa
call fcn.00413290
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 0x412a5a
mov eax, dword [eax + 0x28]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x412a5a
mov edi, 4
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
test edi, edi
je 0x412a72
mov edx, dword [ecx + 4]
push 0
or edx, edi
push edx
call fcn.00413490
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 0x412b86
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x10]
test eax, eax
jbe 0x412b86
lea ecx, [esp + 0x1c]
push 0
push ecx
lea edx, [esp + 0x28]
push eax
push edx
push ebp
call edi
test eax, eax
je 0x412b06
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jne 0x412b06
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 0x412abb
jmp 0x412b86
push 0x47594c
push 0x47d240
call fcn.004138e0
mov ecx, dword [esp + 0x1030]
mov esi, eax
add esp, 8
mov eax, dword [ecx + 4]
test eax, eax
jne 0x412b2d
mov eax, 0x45f3dc
push eax
push esi
call fcn.004138e0
add esp, 8
mov ecx, esi
push 0xa
call fcn.00413290
mov edx, dword [esi]
xor edi, edi
mov eax, dword [edx + 4]
add eax, esi
test byte [eax + 4], 6
jne 0x412b63
mov eax, dword [eax + 0x28]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x412b63
mov edi, 4
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
test edi, edi
je 0x412b84
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x28]
or eax, edi
test edx, edx
jne 0x412b7c
or al, 4
push 0
push eax
call fcn.0043117c
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 0x41290f
push 0x47593c
push 0x47d240
call fcn.004138e0
mov esi, eax
mov eax, dword [esp + 0x1030]
add esp, 8
mov eax, dword [eax + 4]
test eax, eax
jne 0x412bd0
mov eax, 0x45f3dc
push eax
push esi
call fcn.004138e0
add esp, 8
mov ecx, esi
push 0xa
call fcn.00413290
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 0x412c0a
mov eax, dword [eax + 0x28]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x412c0a
mov edi, 4
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
test edi, edi
je 0x412c2b
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x28]
or eax, edi
test edx, edx
jne 0x412c23
or al, 4
push 0
push eax
call fcn.0043117c
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x1010
ret