Function at 0x471eb0
Capabilities:
Check for time delay via gettickcount
Connect to http server
Create http request
Download and write a file
Get http content length
Parse url
Read data from internet
Receive and write data from server to client
Receive data
Resolve function by parsing pe exports
Write file on windows

Disassembly:
mov eax, 0x6550
call fcn.0046bb50
mov eax, dword [0x4b0b28]
xor eax, esp
mov dword [esp + 0x6548], eax
push ebx
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x6c], eax
lea eax, [esp + 0x1c]
mov esi, 0x2ee2
xor ebx, ebx
push eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebx
call sub.SensApi.dll_IsNetworkAlive
test eax, eax
je 0x4723bb
push 0x1fe
lea ecx, [esp + 0x2c6]
push ebx
push ecx
mov word [esp + 0x2cc], bx
call sub.MSVCR80.dll_memset
push 0xfe
lea edx, [esp + 0x1d2]
push ebx
push edx
mov word [esp + 0x1d8], bx
call sub.MSVCR80.dll_memset
push 0xfe
lea eax, [esp + 0xde]
push ebx
push eax
mov word [esp + 0xe4], bx
call sub.MSVCR80.dll_memset
push 0x1046
lea ecx, [esp + 0x1532]
push ebx
push ecx
mov word [esp + 0x1538], bx
call sub.MSVCR80.dll_memset
push 0x1046
lea edx, [esp + 0x4f6]
push ebx
push edx
mov word [esp + 0x4fc], bx
call sub.MSVCR80.dll_memset
push 0x38
lea eax, [esp + 0x8c]
push ebx
push eax
call sub.MSVCR80.dll_memset
lea ecx, [esp + 0x308]
lea edx, [esp + 0x208]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xac], edx
mov eax, 0x80
add esp, 0x48
cmp dword [edi + 0x18], 8
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x1508]
mov dword [esp + 0x48], 0x3c
mov dword [esp + 0x5c], 0x100
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], 0x824
jb 0x471ff1
mov eax, dword [edi + 4]
jmp 0x471ff4
lea eax, [edi + 4]
lea ecx, [esp + 0x48]
push ecx
push ebx
push ebx
push eax
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
je 0x4723bb
cmp dword [esp + 0x54], 3
jne 0x4723bb
push ebx
push ebx
push ebx
push ebx
push 0x49a288
call dword [sym.imp.WININET.dll_InternetOpenW]
mov ebp, eax
cmp ebp, ebx
mov dword [esp + 0x40], ebp
je 0x4723bb
mov ecx, dword [esp + 0x60]
push ebx
push ebx
push 3
lea edx, [esp + 0xcc]
push edx
lea eax, [esp + 0x1d0]
push eax
push ecx
lea edx, [esp + 0x2d8]
push edx
push ebp
call dword [sym.imp.WININET.dll_InternetConnectW]
mov esi, eax
cmp esi, ebx
mov dword [esp + 0x1c], esi
je 0x4723b0
cmp dword [esp + 0x78], ebx
je 0x472082
mov eax, dword [esp + 0x74]
push eax
push 0x824
lea ecx, [esp + 0x4c8]
push ecx
jmp 0x472094
push 0x49a284
push 0x824
lea edx, [esp + 0x4c8]
push edx
call dword [sym.imp.MSVCR80.dll_wcscpy_s]
mov ebp, dword [sym.imp.WININET.dll_HttpOpenRequestW]
add esp, 0xc
push ebx
push SysReAllocString
push ebx
push 0x49a2ec
push 0x49a2f0
lea eax, [esp + 0x4d4]
push eax
push str.HEAD
push esi
call ebp
mov esi, eax
mov dword [esp + 0x38], eax
call fcn.00471c80
test eax, eax
je 0x472392
push ebx
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x1c]
push edx
push 0x20000005
mov eax, esi
push eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x50], 4
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x472118
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x472392
cmp eax, 0x3e800000
jbe 0x47211e
jmp 0x472392
xor eax, eax
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 0x64]
cmp ecx, ebx
je 0x47213f
mov dword [esp + 0x28], eax
push ebx
lea eax, [esp + 0x2c]
push eax
mov eax, dword [edi + 0x54]
mov dword [esp + 0x34], ebx
mov edx, dword [ecx]
mov edx, dword [edx]
push eax
push 0x5f
call edx
mov ecx, dword [esp + 0x1c]
push ebx
push SysReAllocString
push ebx
push 0x49a310
push str.HTTP_1.1
lea eax, [esp + 0x4d4]
push eax
push 0x49a328
push ecx
call ebp
mov ebp, eax
mov esi, ebp
mov dword [esp + 0x30], ebp
call fcn.00471c80
test eax, eax
je 0x472387
cmp dword [edi + 0x50], 8
jb 0x472184
mov eax, dword [edi + 0x3c]
jmp 0x472187
lea eax, [edi + 0x3c]
push ebx
push 0x80
push 2
push ebx
push ebx
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [esp + 0x34], eax
je 0x472373
mov dword [esp + 0x20], ebx
mov dword [esp + 0xc], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x3c
lea edx, [esp + 0x88]
push ebx
push edx
mov esi, eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], ebx
call sub.MSVCR80.dll_memset
add esp, 0xc
cmp byte [edi + 0x59], bl
je 0x472373
push 0x4000
lea eax, [esp + 0x2554]
push ebx
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
push 0x4000
lea edx, [esp + 0x2558]
push edx
push ebp
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x472369
cmp dword [esp + 0xc], ebx
je 0x472369
cmp dword [edi + 0x68], 0xffffffff
lea ebp, [edi + 0x68]
jne 0x472254
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, dword [edi + 0x6c]
jb 0x472254
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x6c]
mov ecx, dword [edi + 0x64]
cmp ecx, ebx
mov dword [ebp], eax
je 0x472254
mov edx, dword [edi + 0x54]
mov eax, dword [ecx]
mov eax, dword [eax]
push ebx
push ebp
push edx
push 0x63
call eax
mov edx, dword [esp + 0xc]
push ebx
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
lea eax, [esp + 0x255c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x47235d
mov edx, dword [esp + 0xc]
add dword [esp + 0x20], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, eax
sub eax, esi
cmp eax, 0x3e8
jb 0x472342
mov eax, dword [esp + 0x14]
cmp eax, ebx
jbe 0x4722f9
cmp dword [edi + 0x64], ebx
je 0x4722f9
mov ecx, dword [esp + 0x20]
fild dword [esp + 0x20]
test ecx, ecx
jge 0x4722b6
fadd qword [0x49d6e0]
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x4722c8
fadd qword [0x49d6e0]
fdivp st(1)
fmul qword [0x49d6d8]
fnstcw word [esp + 0x12]
movzx eax, word [esp + 0x12]
or eax, 0xc00
mov dword [esp + 0x28], eax
fldcw word [esp + 0x28]
fistp qword [esp + 0x28]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x90], edx
fldcw word [esp + 0x12]
mov eax, dword [esp + 0x24]
lea ecx, [eax + eax]
mov eax, 0xaaaaaaab
mul ecx
mov ecx, edx
mov eax, 0xaaaaaaab
mul dword [esp + 0x88]
shr edx, 1
shr ecx, 1
add ecx, edx
push ebx
lea eax, [esp + 0x88]
push eax
mov eax, dword [edi + 0x54]
mov dword [esp + 0x90], ecx
mov ecx, dword [edi + 0x64]
mov edx, dword [ecx]
mov edx, dword [edx]
push eax
push 0x5b
call edx
mov dword [esp + 0x24], ebx
mov esi, ebp
jmp 0x47234a
mov eax, dword [esp + 0xc]
add dword [esp + 0x24], eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
je 0x472373
jmp 0x4721d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, dword [esp + 0x30]
jmp 0x47236f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x472387
cmp eax, 0xffffffff
je 0x472387
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebp, ebx
je 0x472392
push ebp
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [esp + 0x38]
cmp eax, ebx
je 0x4723a1
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ebp, dword [esp + 0x40]
push ebp
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov esi, dword [esp + 0x18]
cmp byte [edi + 0x59], bl
mov eax, esi
mov byte [edi + 0x59], bl
jne 0x4723c9
mov byte [edi + 0x70], 1
mov ecx, dword [esp + 0x6554]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0046b7d6
add esp, 0x6550
ret