Function at 0x407d90
Capabilities:
Check if file exists
Connect to http server
Create directory
Create http request
Get file attributes
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c5fec
mov eax, dword fs:[0]
push eax
sub esp, 0x4f8
mov eax, dword [0x4fa534]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4f8], esi
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x4bc], 0
mov byte [ebp - 0x4a9], 0
mov dword [ebp - 0x4c0], 0
mov dword [ebp - 0x4b8], 0
mov dword [ebp - 4], 0
test ebx, ebx
je 0x4085fd
mov ecx, ebx
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407e10
sub ecx, edx
sar ecx, 1
je 0x4085fd
mov eax, dword [esi + 0x10]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
test eax, eax
je 0x407e3c
push eax
call edi
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x407e4d
push eax
call edi
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
test eax, eax
je 0x407e5e
push eax
call edi
mov dword [esi + 8], 0
push 0
push 0
push 0
push 0
push str.Http_connect
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [esi + 8], eax
test eax, eax
je 0x4084e0
xor eax, eax
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x4b4], 0x50
mov dword [ebp - 0x480], 0
mov dword [ebp - 0x47c], 7
mov word [ebp - 0x490], ax
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x41c], 7
mov word [ebp - 0x430], ax
lea eax, [ebp - 0x4b4]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x430]
mov ecx, ebx
push eax
lea edx, [ebp - 0x490]
call fcn.00405600
mov ecx, dword [ebp - 0x4b4]
mov eax, 0x1bb
add esp, 8
cmp cx, ax
jne 0x407f00
mov byte [esi + 4], 1
cmp dword [ebp - 0x47c], 8
lea eax, [ebp - 0x490]
push 0
cmovae eax, dword [ebp - 0x490]
push 0
push 3
push 0
push 0
push ecx
push eax
push dword [esi + 8]
call dword [sym.imp.WININET.dll_InternetConnectW]
mov edx, eax
mov dword [esi + 0xc], edx
test edx, edx
je 0x4084fb
cmp byte [esi + 4], 0
mov eax, closesocket
push 0
mov ecx, 0x80802000
cmove ecx, eax
cmp dword [ebp - 0x41c], 8
push ecx
push 0
push 0
push 0x4e8e3c
lea eax, [ebp - 0x430]
cmovae eax, dword [ebp - 0x430]
push eax
push 0x4e8e50
push edx
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov dword [esi + 0x10], eax
test eax, eax
je 0x408516
lea eax, [ebp - 0x4a8]
push eax
lea ecx, [esi + 0x14]
call fcn.0040e8e0
mov byte [ebp - 4], 3
lea eax, [ebp - 0x4a8]
cmp dword [ebp - 0x494], 0x10
push 0xa0000000
push dword [ebp - 0x498]
cmovae eax, dword [ebp - 0x4a8]
push eax
push dword [esi + 0x10]
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
push 0
push 0
push 0
push 0
push dword [esi + 0x10]
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x408531
push 0x401
lea eax, [ebp - 0x418]
push 0
push eax
call fcn.00464bd0
mov edi, dword [sym.imp.WININET.dll_HttpQueryInfoA]
lea eax, [ebp - 0x4b0]
add esp, 0xc
mov dword [ebp - 0x4b0], 0x400
push 0
push eax
lea eax, [ebp - 0x418]
push eax
push 0x15
push dword [esi + 0x10]
call edi
test eax, eax
je 0x40854c
lea ecx, [ebp - 0x418]
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x450], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x44c], 0xf
mov byte [ebp - 0x460], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408047
sub ecx, edx
lea eax, [ebp - 0x418]
push ecx
push eax
lea ecx, [ebp - 0x460]
call fcn.00406f50
push 0
push 0x4e8e38
lea ecx, [ebp - 0x460]
mov byte [ebp - 4], 4
call fcn.00404890
cmp eax, 0xffffffff
jne 0x408567
push 0
lea eax, [ebp - 0x4b0]
mov dword [ebp - 0x4b0], 0x400
push eax
lea eax, [ebp - 0x418]
push eax
push 5
push dword [esi + 0x10]
call edi
test eax, eax
je 0x408582
mov eax, dword [ebp - 0x4b0]
cmp eax, 0x401
jae 0x4085f8
mov byte [ebp + eax - 0x418], 0
lea eax, [ebp - 0x418]
push eax
call fcn.004985b9
movsd xmm0, qword [0x4e9548]
add esp, 4
fstp qword [ebp - 0x500]
movsd xmm1, qword [ebp - 0x500]
comisd xmm0, xmm1
cvttsd2si eax, xmm1
ja 0x4080f8
mov eax, 0x1000
push eax
mov dword [ebp - 0x4b4], eax
call fcn.00470500
add esp, 4
lea ecx, [ebp - 0x478]
mov ebx, eax
xor edi, edi
mov dword [ebp - 0x4c0], ebx
push dword [ebp - 0x4c4]
call fcn.00404ed0
mov byte [ebp - 4], 5
nop word [eax + eax]
push edi
push 0x4e8e64
lea ecx, [ebp - 0x478]
call fcn.00405030
mov edi, eax
lea eax, [ebp - 0x478]
cmp edi, 0xffffffff
je 0x408228
cmp dword [ebp - 0x468], edi
lea ecx, [ebp - 0x448]
mov edx, edi
mov dword [ebp - 0x448], 0
cmovb edx, dword [ebp - 0x468]
cmp dword [ebp - 0x464], 8
push edx
cmovae eax, dword [ebp - 0x478]
push eax
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x434], 7
call fcn.004053d0
or dword [ebp - 0x4bc], 1
lea eax, [ebp - 0x448]
cmp dword [ebp - 0x434], 8
cmovae eax, dword [ebp - 0x448]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4081de
cmp dword [ebp - 0x434], 8
lea eax, [ebp - 0x448]
push 0
cmovae eax, dword [ebp - 0x448]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edx, dword [ebp - 0x434]
inc edi
cmp edx, 8
jb 0x408130
mov ecx, dword [ebp - 0x448]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408219
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40859d
push edx
push ecx
call fcn.0043c464
add esp, 8
jmp 0x408130
cmp dword [ebp - 0x464], 8
push 0x4e8cfc
cmovae eax, dword [ebp - 0x478]
push eax
lea eax, [ebp - 0x4b8]
push eax
call fcn.004904b9
add esp, 0xc
cmp dword [ebp - 0x4b8], 0
je 0x4085a2
mov edi, dword [sym.imp.WININET.dll_InternetReadFile]
xorps xmm0, xmm0
movsd qword [ebp - 0x4c8], xmm0
nop dword [eax]
lea eax, [ebp - 0x4b0]
push eax
push dword [ebp - 0x4b4]
push ebx
push dword [esi + 0x10]
call edi
test eax, eax
je 0x408300
mov eax, dword [ebp - 0x4b0]
test eax, eax
je 0x408300
push dword [ebp - 0x4b8]
push 1
push eax
push ebx
call fcn.0049091f
add esp, 0x10
test eax, eax
je 0x4085bd
mov eax, dword [ebp - 0x4b0]
mov ecx, dword [esi + 0x70]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4e9550]
addsd xmm0, qword [ebp - 0x4c8]
movsd qword [ebp - 0x4c8], xmm0
test ecx, ecx
je 0x408270
mov eax, dword [ecx]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x500]
movsd qword [esp], xmm0
push 0
push dword [esi + 0x6c]
call dword [eax]
jmp 0x408270
push dword [ebp - 0x4b8]
call fcn.0048fb5c
movsd xmm0, qword [ebp - 0x4c8]
add esp, 4
movsd xmm1, qword [ebp - 0x500]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4085d8
mov ecx, dword [esi + 0x70]
test ecx, ecx
je 0x40834a
mov eax, dword [ecx]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
push 2
push dword [esi + 0x6c]
call dword [eax]
lea ecx, [ebp - 0x478]
mov byte [ebp - 0x4a9], 1
call fcn.00406670
mov edx, dword [ebp - 0x44c]
cmp edx, 0x10
jb 0x408396
mov ecx, dword [ebp - 0x460]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40838c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4085f3
push edx
push ecx
call fcn.0043c464
add esp, 8
lea ecx, [ebp - 0x4a8]
mov dword [ebp - 0x450], 0
mov dword [ebp - 0x44c], 0xf
mov byte [ebp - 0x460], 0
call fcn.00405b10
mov edx, dword [ebp - 0x41c]
cmp edx, 8
jb 0x4083fc
mov ecx, dword [ebp - 0x430]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4083f2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4085f3
push edx
push ecx
call fcn.0043c464
add esp, 8
mov edx, dword [ebp - 0x47c]
xor eax, eax
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 7
mov word [ebp - 0x430], ax
cmp edx, 8
jb 0x40849c
mov ecx, dword [ebp - 0x490]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40844f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4085f3
push edx
push ecx
call fcn.0043c464
add esp, 8
jmp 0x40849c
test ebx, ebx
je 0x4084a9
push ebx
call fcn.004704e5
add esp, 4
mov ecx, dword [ebp - 0x4b8]
test ecx, ecx
je 0x4084bc
push ecx
call fcn.0048fb5c
add esp, 4
mov al, byte [ebp - 0x4a9]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0043c480
mov esp, ebp
pop ebp
ret 8
push 0x4f7ecc
lea eax, [ebp - 0x4cc]
mov dword [ebp - 0x4cc], 1
push eax
call fcn.00464e01
push 0x4f7ecc
lea eax, [ebp - 0x4d0]
mov dword [ebp - 0x4d0], 2
push eax
call fcn.00464e01
push 0x4f7ecc
lea eax, [ebp - 0x4d4]
mov dword [ebp - 0x4d4], 1
push eax
call fcn.00464e01
push 0x4f7ecc
lea eax, [ebp - 0x4d8]
mov dword [ebp - 0x4d8], 3
push eax
call fcn.00464e01
push 0x4f7ecc
lea eax, [ebp - 0x4dc]
mov dword [ebp - 0x4dc], 4
push eax
call fcn.00464e01
push 0x4f7ecc
lea eax, [ebp - 0x4e0]
mov dword [ebp - 0x4e0], 5
push eax
call fcn.00464e01
push 0x4f7ecc
lea eax, [ebp - 0x4e4]
mov dword [ebp - 0x4e4], 4
push eax
call fcn.00464e01
call fcn.00470977
push 0x4f7ecc
lea eax, [ebp - 0x4e8]
mov dword [ebp - 0x4e8], 7
push eax
call fcn.00464e01
push 0x4f7ecc
lea eax, [ebp - 0x4ec]
mov dword [ebp - 0x4ec], 0xf
push eax
call fcn.00464e01
push 0x4f7ecc
lea eax, [ebp - 0x4f0]
mov dword [ebp - 0x4f0], 8
push eax
call fcn.00464e01
call fcn.00470977
call fcn.0043d74d
push 0x4f7ecc
lea eax, [ebp - 0x4f4]
mov dword [ebp - 0x4f4], 6
push eax
call fcn.00464e01
int3