Function at 0x457de0
Capabilities:
Check for peb beingdebugged flag
Connect to http server
Create http request
Download and write a file
Query remote server for available data
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4cb851
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x95c
mov al, byte [esp + 2]
push ebx
push ebp
push esi
mov ebx, ecx
push edi
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], al
call fcn.00401600
mov edi, str..Image_
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str..Image_
lea ecx, [esp + 0x30]
call fcn.00401560
push 0
push 0
push 0
push 0
push str.HTTPFILE
mov dword [esp + 0x988], 0
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x40], ebp
je 0x457fd9
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x69]
mov byte [esp + 0x68], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [ebx + 8]
test edi, edi
jne 0x457e7f
mov edi, 0x4cf414
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x68]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x12]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x68]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
mov cx, word [0x4dee48]
push eax
mov word [esp + 0x1a], cx
call fcn.004b7dbe
mov cl, byte [esp + 0x1a]
add esp, 8
xor edi, edi
mov byte [esp + 0x14], cl
push edi
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.00401600
test esi, esi
mov byte [esp + 0x974], 1
je 0x457f25
cmp byte [esi], 0
je 0x457f21
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x1c]
call fcn.00401560
lea edx, [esp + 0x12]
push edx
push 0
call fcn.004b7dbe
push eax
call fcn.004b84a6
mov edi, eax
lea eax, [esp + 0x1e]
push eax
push 0
call fcn.004b7dbe
add esp, 0x14
mov esi, eax
test esi, esi
jne 0x457ee0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x457f32
mov eax, 0x4cf414
push 0
push 0
push 3
push 0x5c88b8
push 0x5c88b8
push edi
push eax
push ebp
call dword [sym.imp.WININET.dll_InternetConnectA]
mov esi, eax
xor ebp, ebp
cmp esi, ebp
mov dword [esp + 0x38], esi
je 0x457fc6
lea ecx, [ebx + 0x14]
push 0x4e1760
lea edx, [esp + 0x4c]
push ecx
push edx
call fcn.00421820
lea edi, [ebx + 0x24]
mov byte [esp + 0x980], 2
push edi
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.00453120
mov eax, dword [eax + 4]
add esp, 0x18
cmp eax, ebp
jne 0x457f90
mov eax, 0x4cf414
push ebp
push ebp
push ebp
push ebp
push ebp
push eax
push 0x4e1770
push esi
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
push 1
lea ecx, [esp + 0x5c]
mov esi, eax
call fcn.00401600
push 1
lea ecx, [esp + 0x4c]
mov byte [esp + 0x978], 1
call fcn.00401600
cmp esi, ebp
jne 0x457ff6
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x978], 0
call fcn.00401600
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x978], 0xffffffff
call fcn.00401600
xor eax, eax
jmp 0x458188
push ebp
push ebp
push ebp
push ebp
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestA]
lea ecx, [esp + 0x28]
push edi
lea edx, [esp + 0x4c]
push ecx
push edx
call fcn.00453120
mov eax, dword [eax + 4]
add esp, 0xc
cmp eax, ebp
jne 0x458020
mov eax, 0x4cf414
push ebp
push 0x80
push 2
push ebp
push ebp
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov edi, eax
mov eax, dword [esp + 0x4c]
cmp eax, ebp
je 0x45805d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x458054
cmp al, 0xff
je 0x458054
dec al
mov byte [ecx], al
jmp 0x45805d
push ecx
call fcn.004a9db0
add esp, 4
cmp edi, 0xffffffff
jne 0x4580c2
mov ecx, dword [esp + 0x18]
cmp ecx, ebp
je 0x458086
mov al, byte [ecx - 1]
test al, al
je 0x45807c
cmp al, 0xff
je 0x45807c
dec al
mov byte [ecx - 1], al
jmp 0x458086
dec ecx
push ecx
call fcn.004a9db0
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ebp
cmp ecx, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
je 0x4580bb
mov al, byte [ecx - 1]
test al, al
je 0x4580b1
cmp al, 0xff
je 0x4580b1
dec al
mov byte [ecx - 1], al
xor eax, eax
jmp 0x458188
dec ecx
push ecx
call fcn.004a9db0
add esp, 4
xor eax, eax
jmp 0x458188
mov ebp, dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
mov ebx, dword [sym.imp.WININET.dll_InternetReadFile]
push 0
lea eax, [esp + 0x40]
push 0
push eax
push esi
call ebp
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x24]
push ecx
lea eax, [esp + 0x170]
push edx
push eax
push esi
call ebx
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x44]
push 0
push ecx
lea eax, [esp + 0x174]
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4580ce
mov ecx, dword [esp + 0x38]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ecx
call esi
mov edx, dword [esp + 0x40]
push edx
call esi
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov ecx, dword [esp + 0x18]
xor esi, esi
cmp ecx, esi
je 0x458153
mov al, byte [ecx - 1]
test al, al
je 0x458149
cmp al, 0xff
je 0x458149
dec al
mov byte [ecx - 1], al
jmp 0x458153
dec ecx
push ecx
call fcn.004a9db0
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], esi
cmp ecx, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x458183
mov al, byte [ecx - 1]
test al, al
je 0x458179
cmp al, 0xff
je 0x458179
dec al
mov byte [ecx - 1], al
jmp 0x458183
dec ecx
push ecx
call fcn.004a9db0
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x96c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x968
ret