Function at 0x48e530
Capabilities:
Check for time delay via gettickcount
Check http status code
Connect to http server
Create http request
Download and write a file
Get http content length
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 ebp
mov ebp, esp
sub esp, 0x278
mov eax, dword [0x4f6fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x208], 0xffffff9d
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x20c], 0
mov dword [0x5509f0], 0
mov dword [0x4f1184], 1
mov dword [0x552c28], 0
movss xmm0, dword [0x4cb710]
movss dword [0x550a7c], xmm0
mov dword [0x4f1180], 1
cmp dword [0x4e1450], 0xffffffff
jne 0x48e5ac
call fcn.0049bcc0
mov dword [0x4e1450], eax
mov eax, dword [ebp + 0x30]
mov dword [eax], 0
mov ecx, dword [ebp + 0x2c]
cmp dword [ecx], 0
jne 0x48e5cc
mov dword [0x4f1184], 0
jmp 0x48f943
mov edx, 1
imul edx, edx, 0
mov eax, dword [ebp + 0x14]
movsx ecx, byte [eax + edx]
test ecx, ecx
jne 0x48e64d
push str._r_n_r_n
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx]
push eax
call fcn.004b5e60
add esp, 8
mov ecx, dword [ebp + 0x30]
mov dword [ecx], 4
cmp dword [0x4fd0f4], 6
je 0x48e64d
mov dword [ebp - 0x23c], 0
push 0x4f11b0
push 0x4ff080
call fcn.004b5ff0
add esp, 8
mov dword [ebp - 0x23c], eax
cmp dword [0x4e1450], 8
je 0x48e638
cmp dword [0x4e1450], 9
jne 0x48e646
mov edx, dword [0x4e1450]
mov dword [0x4e1450], edx
jmp 0x48e64d
mov dword [ebp + 0x1c], 1
push str.GRPD_
mov eax, dword [ebp + 0xc]
push eax
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x48e66c
mov dword [0x4f1178], 0x1b7740
push str.STDR_
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x48e696
push str.FIND_
mov edx, dword [ebp + 0xc]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x48e6a2
mov dword [0x4f1178], 0x1d4c0
jmp 0x48e6cd
push str.CLSB_
mov eax, dword [ebp + 0xc]
push eax
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x48e6c3
mov dword [0x4f1178], 0x1d4c0
jmp 0x48e6cd
mov dword [0x4f1178], 0xea60
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp + 0x14]
movsx eax, byte [edx + ecx]
test eax, eax
jne 0x48e6ec
mov dword [0x4f1180], 0
jmp 0x48e754
push 0x4f11e0
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x48e740
push str.LESSON.
mov edx, dword [ebp + 0x14]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x48e740
push str.ENG_LOC.EXE
mov eax, dword [ebp + 0x14]
push eax
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x48e740
push str.CONNECTED
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x48e754
mov dword [0x4f1180], 0
mov dword [0x4f1178], 0x2710
cmp dword [0x4f1180], 1
jne 0x48e7d0
call fcn.0049a460
push 0x55cec0
push str.MSG_Message_PressToStopDownload1
push 0
call fcn.00475ed0
add esp, 0xc
mov edx, dword [ebp + 0xc]
push edx
push 0x32
call fcn.0042dba0
add esp, 8
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.004b5e60
add esp, 8
lea ecx, [ebp - 0x104]
push ecx
push 0x55cfc0
push str.MSG_Message_Downloading
push 0
call fcn.004766d0
add esp, 0x10
cmp dword [0x552c10], 2
jne 0x48e7ba
jmp 0x48e7d0
push 0x55cec0
mov edx, dword [ebp + 0x14]
push edx
push 0x55cfc0
call fcn.0049a5b0
add esp, 0xc
push 0x186f2c0
push 0x4ff080
push str.RecMan
push str.Windows
push str._DynEd_s_sHW_sRes__s_
push 0x55d0c0
call fcn.004b6e08
add esp, 0x18
mov eax, dword [ebp + 0xc]
push eax
call fcn.0048fbc0
add esp, 4
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp + 0x14]
movsx eax, byte [edx + ecx]
test eax, eax
je 0x48e823
cmp dword [0x550a78], 1
jne 0x48e823
call fcn.0048fbf0
cmp dword [0x550a78], 1
jne 0x48e843
cmp dword [0x550994], 0
je 0x48e843
cmp dword [0x5509e8], 0
je 0x48e843
jmp 0x48eb85
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp + 0x14]
movsx eax, byte [edx + ecx]
test eax, eax
je 0x48e934
mov dword [ebp - 0x26c], 0xc
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x264], 0
cmp dword [0x4e1450], 1
je 0x48e8a5
cmp dword [0x4e1450], 2
je 0x48e8a5
cmp dword [0x4e1450], 3
je 0x48e8a5
cmp dword [0x4e1450], 6
je 0x48e8a5
cmp dword [0x4e1450], 7
jne 0x48e8b1
mov dword [ebp - 0x224], 1
jmp 0x48e8bb
mov dword [ebp - 0x224], 5
push 0
push 0x80
push 2
lea ecx, [ebp - 0x26c]
push ecx
mov edx, dword [ebp - 0x224]
push edx
push 0x40000000
mov eax, dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x5509f0], eax
cmp dword [0x5509f0], 0xffffffff
jne 0x48e934
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
push str.Cant_open_file:__s__Error:__d
push 0x55d1c0
call fcn.004b6e08
add esp, 0x10
push 0x55d1c0
push 1
call fcn.00440830
add esp, 8
mov dword [0x5509f0], 0
mov dword [0x4f1184], 0
jmp 0x48f943
mov edx, dword [ebp + 0xc]
push edx
call fcn.0048fbc0
add esp, 4
mov dword [0x550994], 0
mov eax, 1
imul eax, eax, 0
mov ecx, dword [ebp + 0x10]
movsx edx, byte [ecx + eax]
test edx, edx
je 0x48e972
push 0x4f1290
mov eax, dword [ebp + 0x10]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x48e9b6
push 0
push 0
push 0
push 1
push 0x55d0c0
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [0x550994], eax
cmp dword [0x550994], 0
jne 0x48e9b6
push str.InternetOpen_1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
cmp dword [0x550994], 0
jne 0x48ea83
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
push str.auto
mov edx, dword [ebp + 0x10]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x48ea2a
push 0
push 0
push 0
push 0
push 0x55d0c0
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [0x550994], eax
cmp dword [0x550994], 0
jne 0x48ea28
push str.InternetOpen_2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
jmp 0x48ea83
mov eax, 1
imul eax, eax, 0
mov ecx, dword [ebp + 0x10]
movsx edx, byte [ecx + eax]
test edx, edx
je 0x48ea57
push 0
push 0
mov eax, dword [ebp + 0x10]
push eax
push 3
push 0x55d0c0
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [0x550994], eax
cmp dword [0x550994], 0
jne 0x48ea83
push str.InternetOpen_3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
cmp dword [ebp + 0x28], 0
je 0x48ead4
push 0x48fcd0
mov edx, dword [0x550994]
push edx
call dword [sym.imp.WININET.dll_InternetSetStatusCallback]
cmp eax, 0xffffffff
jne 0x48ead4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetCallBack_error:__d
push 0x55d1c0
call fcn.004b6e08
add esp, 0xc
mov dword [0x4f1184], 0
jmp 0x48f943
cmp dword [ebp + 0x1c], 0
je 0x48eaf1
mov eax, 0x1bb
mov word [0x55db38], ax
mov dword [0x4f1174], 0x84c00000
jmp 0x48eb25
xor ecx, ecx
mov word [0x55db38], cx
mov dword [0x4f1174], 0x84400000
push 0x54efd0
mov edx, dword [ebp + 8]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x48eb25
mov ax, word [0x54e954]
mov word [0x55db38], ax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
push 0
push 0
push 3
push 0
push 0
movzx edx, word [0x55db38]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [0x550994]
push ecx
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [0x5509e8], eax
cmp dword [0x5509e8], 0
jne 0x48eb85
push str.InternetConnect
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
cmp dword [ebp + 0x20], 0
je 0x48ebbf
push str.POST
push 0x55d2c0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, dword [ebp + 0x24]
mov dword [0x55db34], edx
mov eax, dword [ebp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [0x55db2c], eax
mov dword [0x550a00], 0x4f1318
jmp 0x48ec0e
push str.QUIT_
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x48ebe0
mov dword [0x550a00], str.Connection:_close
jmp 0x48ebea
mov dword [0x550a00], str.Proxy_Connection:_Keep_Alive
push 0x4f1388
push 0x55d2c0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [0x55db34], 0
mov dword [0x55db2c], 0
mov edx, dword [ebp + 0xc]
push edx
call fcn.0048fbc0
add esp, 4
push 0
mov eax, dword [0x4f1174]
push eax
push 0x4f1168
push 0x550993
push 0
mov ecx, dword [ebp + 0xc]
push ecx
push 0x55d2c0
mov edx, dword [0x5509e8]
push edx
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov dword [0x5509ec], eax
mov eax, dword [ebp + 0xc]
push eax
call fcn.0048fbc0
add esp, 4
cmp dword [0x5509ec], 0
jne 0x48ec94
cmp dword [0x550a78], 1
jne 0x48ec71
call fcn.0048fbf0
jmp 0x48e7f6
push str.HttpOpenRequest
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
push 4
push 0x4f1178
push 6
mov ecx, dword [0x5509ec]
push ecx
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48ecd1
push str.InternetSetOption_INTERNET_OPTION_RECEIVE_TIMEOUT
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
mov edx, dword [ebp + 0xc]
push edx
call fcn.0048fbc0
add esp, 4
push 4
push 0x4f1178
push 5
mov eax, dword [0x5509ec]
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48ed19
push str.InternetSetOption_INTERNET_OPTION_SEND_TIMEOUT
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
mov ecx, dword [ebp + 0x1c]
cmp ecx, dword [ebp + 0x1c]
jne 0x48ed69
mov dword [ebp - 0x25c], 0x80
push 4
lea edx, [ebp - 0x25c]
push edx
push 0x1f
mov eax, dword [0x5509ec]
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48ed69
push str.InternetSetOption_INTERNET_OPTION_SECURITY_FLAGS
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
push 4
push 0x4f1178
push 2
mov edx, dword [0x5509ec]
push edx
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48edb2
push str.InternetSetOption_INTERNET_OPTION_CONNECT_TIMEOUT
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
mov eax, dword [ebp + 0xc]
push eax
call fcn.0048fbc0
add esp, 4
push 4
push 0x4f117c
push 3
mov ecx, dword [0x5509ec]
push ecx
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48edfb
push str.InternetSetOption_INTERNET_OPTION_CONNECT_RETRIES
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
mov edx, dword [ebp + 0xc]
push edx
call fcn.0048fbc0
add esp, 4
mov eax, dword [0x550a00]
push eax
call fcn.004b5f60
add esp, 4
mov dword [0x5509f8], eax
push str.HttpSendRequest_1
push 5
call fcn.00440830
add esp, 8
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x250], eax
mov edx, dword [0x55db2c]
push edx
mov eax, dword [0x55db34]
push eax
mov ecx, dword [0x5509f8]
push ecx
mov edx, dword [0x550a00]
push edx
mov eax, dword [0x5509ec]
push eax
call dword [sym.imp.WININET.dll_HttpSendRequestA]
mov dword [ebp - 0x20c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x250]
mov dword [ebp - 0x230], eax
cvtsi2sd xmm0, dword [ebp - 0x230]
mov ecx, dword [ebp - 0x230]
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x4cb8d0]
movsd qword [ebp - 0x278], xmm0
cvtsd2ss xmm0, qword [ebp - 0x278]
divss xmm0, dword [0x4cb948]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push str.SEND_COMMAND:___3.3f_
lea edx, [ebp - 0x204]
push edx
call fcn.004b6e08
add esp, 0x10
lea eax, [ebp - 0x204]
push eax
push 3
call fcn.00440830
add esp, 8
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
push str.HttpSendRequest_2
push 5
call fcn.00440830
add esp, 8
cmp dword [ebp - 0x20c], 0
jne 0x48ef32
push str.HttpSend_1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
cmp dword [ebp + 0x1c], 0
je 0x48ef50
call fcn.004901a0
test eax, eax
jne 0x48ef50
mov dword [0x4f1184], 0
jmp 0x48f943
cmp dword [ebp + 0x18], 0
je 0x48ef8a
push 0
push 7
mov edx, dword [0x5509fc]
push edx
mov eax, dword [0x5509ec]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.WININET.dll_InternetErrorDlg]
mov dword [0x55db28], eax
cmp dword [0x55db28], 0x2f00
jne 0x48ef8a
jmp 0x48ee07
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
mov dword [0x5509f4], 4
push 0
push 0x5509f4
push 0x55db30
push 0x20000013
mov edx, dword [0x5509ec]
push edx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
jne 0x48efe5
push 0x4f0b50
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
mov eax, dword [ebp + 0xc]
push eax
call fcn.0048fbc0
add esp, 4
cmp dword [ebp + 0x18], 0
jne 0x48f1c7
cmp dword [0x55db30], 0x191
je 0x48f017
cmp dword [0x55db30], 0x197
jne 0x48f1c7
mov dword [ebp - 0x218], 0
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
mov dword [0x5509f4], 0
push 0x5509f4
push 0x32
push 0x55d2e0
mov edx, dword [0x5509ec]
push edx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x48f056
jmp 0x48f0ba
cmp dword [0x5509f4], 0
je 0x48f0ad
mov eax, dword [ebp - 0x218]
add eax, dword [0x5509f4]
mov dword [ebp - 0x218], eax
mov ecx, dword [ebp - 0x218]
push ecx
mov edx, dword [0x5509f4]
push edx
push 0x4f0b60
push 0x55d1c0
call fcn.004b6e08
add esp, 0x10
push 0x55d1c0
push 2
call fcn.00440830
add esp, 8
call fcn.00488e10
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x5509f4], 0
jne 0x48f021
cmp dword [0x55db30], 0x191
jne 0x48f0da
push str.This_page_is__password_protected.
push 0x55d1c0
call fcn.004b6e08
add esp, 8
jmp 0x48f0ec
push str.Proxy_authentication_is_required.
push 0x55d1c0
call fcn.004b6e08
add esp, 8
cmp dword [0x55db30], 0x191
jne 0x48f10e
mov dword [0x55db24], 0x1c
mov dword [0x55db20], 0x1d
jmp 0x48f122
mov dword [0x55db24], 0x2b
mov dword [0x55db20], 0x2c
push 0x550a04
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push 0x550a04
mov eax, dword [0x55db24]
push eax
mov ecx, dword [0x5509e8]
push ecx
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48f172
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4f0bd8
push 0x55d1c0
call fcn.004b6e08
add esp, 0xc
mov dword [0x4f1184], 0
jmp 0x48f943
push 0x550a38
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push 0x550a38
mov edx, dword [0x55db20]
push edx
mov eax, dword [0x5509e8]
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48f1c2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.InternetSetOptionFailed:__d
push 0x55d1c0
call fcn.004b6e08
add esp, 0xc
mov dword [0x4f1184], 0
jmp 0x48f943
jmp 0x48ee07
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
push 0
push 0x5509f4
push 0
push 0x16
mov edx, dword [0x5509ec]
push edx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov eax, dword [ebp + 0xc]
push eax
call fcn.0048fbc0
add esp, 4
push 0
push 0x5509f4
push 0x55d320
push 0x16
mov ecx, dword [0x5509ec]
push ecx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
jne 0x48f239
push str.HttpQueryInfo
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
mov edx, dword [ebp + 0xc]
push edx
call fcn.0048fbc0
add esp, 4
mov eax, dword [0x5509f4]
mov byte [eax + 0x55d320], 0
mov dword [0x5509f4], 4
push 0
push 0x5509f4
lea ecx, [ebp - 0x258]
push ecx
push 0x13
mov edx, dword [0x5509ec]
push edx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
push 0x4f0c20
lea eax, [ebp - 0x258]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x48f2c3
push 0x55d320
push 1
call fcn.00440830
add esp, 8
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
push str.http:___s_s
push 0x4fcbd8
call fcn.004b6e08
add esp, 0x10
mov dword [ebp - 0x21c], 1
mov eax, 1
imul eax, eax, 0
mov ecx, dword [ebp + 0x14]
movsx edx, byte [ecx + eax]
test edx, edx
je 0x48f312
mov dword [ebp - 0x248], 4
push 0
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x24c]
push ecx
push 0x20000005
mov edx, dword [0x5509ec]
push edx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x48f312
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x208], eax
cmp dword [0x4f1180], 1
jne 0x48f38d
cmp dword [ebp - 0x208], 0xffffff9d
je 0x48f37e
cmp dword [0x552c10], 2
jne 0x48f32f
jmp 0x48f359
mov dword [0x552c10], 1
movsd xmm0, qword [0x4cb8f8]
movsd qword [0x4f2cf8], xmm0
cvtsi2sd xmm0, dword [ebp - 0x208]
movsd qword [0x4f2d00], xmm0
call fcn.0049f460
fstp dword [ebp - 0x254]
movss xmm0, dword [ebp - 0x254]
addss xmm0, dword [0x4cb900]
movss dword [0x550a7c], xmm0
jmp 0x48f38d
mov dword [0x4f1180], 0
call fcn.0049a830
cmp dword [ebp - 0x21c], 0
jne 0x48f3a3
push 0x55d320
call fcn.0047f410
add esp, 4
mov ecx, 0x28
shl ecx, 0
mov dword [ecx + 0x550998], 0x28
mov edx, 0x28
imul edx, edx, 0
mov dword [edx + 0x550998], 0x28
mov byte [0x4fc0a6], 0
mov dword [0x550a74], 0
push str.Start_reading_data
push 5
call fcn.00440830
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
call fcn.0048fbc0
add esp, 4
push 0
push 0
push 0x5509f4
mov ecx, dword [0x5509ec]
push ecx
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
jne 0x48f46b
push str.ERR_WININET:_waiting_for_data_1
push 2
call fcn.00440830
add esp, 8
mov edx, dword [0x5509f4]
push edx
push 0x4f0c64
lea eax, [ebp - 0x104]
push eax
call fcn.004b6e08
add esp, 0xc
lea ecx, [ebp - 0x104]
push ecx
push 2
call fcn.00440830
add esp, 8
push str.InternetQueryDataAvailable_1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
mov edx, dword [0x5509f4]
push edx
push str.InternetQueryDataAvailable_size__ld
lea eax, [ebp - 0x104]
push eax
call fcn.004b6e08
add esp, 0xc
lea ecx, [ebp - 0x104]
push ecx
push 4
call fcn.00440830
add esp, 8
mov edx, dword [ebp + 0xc]
push edx
call fcn.0048fbc0
add esp, 4
call fcn.00488e10
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
movsx eax, byte [0x4fc0a6]
cmp eax, 0x1b
jne 0x48f55a
push 0x4f0ccc
push str.MSG_Button_Stop
push 0x4f0cfc
push 0x4f0d18
call fcn.00458fb0
add esp, 0x10
mov dword [ebp - 0x20c], eax
mov byte [0x4fc0a6], 0
cmp dword [ebp - 0x20c], 2
jne 0x48f55a
push str.Download_interrupted_by_user
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp + 0x14]
movsx eax, byte [edx + ecx]
test eax, eax
je 0x48f52e
push 0x4f0d58
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x48f537
mov edx, dword [ebp + 0x30]
mov dword [edx], 0
mov dword [0x4f1184], 0
mov dword [0x550a74], 1
mov dword [0x4fd0d8], 1
jmp 0x48fa05
cmp dword [0x54e94c], 0
je 0x48f66e
push str.server2.dyned.com
mov eax, dword [ebp + 8]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x48f66e
mov ecx, dword [ebp + 0x30]
mov edx, dword [ecx]
mov eax, dword [0x5509f4]
lea ecx, [edx + eax + 1]
mov dword [ebp - 0x214], ecx
cmp dword [0x5509f0], 0
je 0x48f5ac
mov edx, dword [0x5509f4]
add edx, 1
mov dword [ebp - 0x214], edx
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax]
push ecx
push 0
mov edx, dword [0x54e94c]
push edx
call dword [sym.imp.KERNEL32.dll_HeapSize]
mov dword [0x55ceb8], eax
mov eax, dword [ebp - 0x214]
cmp eax, dword [0x55ceb8]
jle 0x48f66e
push str.ERR_WININET:_Reallocating_1
push 2
call fcn.00440830
add esp, 8
mov ecx, dword [ebp - 0x214]
push ecx
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx]
push eax
push 8
mov ecx, dword [0x54e94c]
push ecx
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov edx, dword [ebp + 0x2c]
mov dword [edx], eax
push str.ERR_WININET:_Reallocating_2
push 2
call fcn.00440830
add esp, 8
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax]
push ecx
push 0
mov edx, dword [0x54e94c]
push edx
call dword [sym.imp.KERNEL32.dll_HeapSize]
mov dword [0x55ceb8], eax
mov eax, dword [ebp + 0x2c]
cmp dword [eax], 0
jne 0x48f664
push 0x550990
push 0x550991
push 0x4f0d98
push str.Memory_Error
call fcn.00458fb0
add esp, 0x10
mov dword [0x4f1184], 0xffffffff
jmp 0x48f943
push 0x32
call fcn.00481890
add esp, 4
cmp dword [0x5509f4], 0
je 0x48f8e7
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [ebp + 0x30]
add edx, dword [eax]
mov dword [ebp - 0x210], edx
cmp dword [0x5509f0], 0
je 0x48f69f
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x210], edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.0048fbc0
add esp, 4
mov dword [ebp - 0x260], 0
lea ecx, [ebp - 0x260]
push ecx
mov edx, dword [0x5509f4]
push edx
mov eax, dword [ebp - 0x210]
push eax
mov ecx, dword [0x5509ec]
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x48f6fe
push str.InternetReadFileEx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00490140
add esp, 8
mov dword [0x4f1184], 0
jmp 0x48f943
cmp dword [0x552c10], 2
jne 0x48f73f
mov edx, dword [0x5509f4]
mov dword [ebp - 0x238], edx
cvtsi2sd xmm0, dword [ebp - 0x238]
mov eax, dword [ebp - 0x238]
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4cb8d0]
addsd xmm0, qword [0x4f2cf8]
movsd qword [0x4f2cf8], xmm0
jmp 0x48f76d
mov ecx, dword [0x552c28]
mov dword [ebp - 0x22c], ecx
cvtsi2sd xmm0, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x22c]
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x4cb8d0]
movsd qword [0x4f2cf8], xmm0
call fcn.0049f460
fstp dword [ebp - 0x240]
movss xmm0, dword [ebp - 0x240]
comiss xmm0, dword [0x550a7c]
jbe 0x48f7b5
cmp dword [0x4f1180], 1
jne 0x48f7b5
call fcn.0049f460
fstp dword [ebp - 0x244]
movss xmm0, dword [ebp - 0x244]
addss xmm0, dword [0x4cb900]
movss dword [0x550a7c], xmm0
mov eax, dword [ebp - 0x210]
add eax, dword [0x5509f4]
mov byte [eax], 0
cmp dword [ebp - 0x208], 0xffffff9d
je 0x48f838
mov ecx, dword [0x5509f4]
imul ecx, ecx, 3
cmp dword [ebp - 0x208], ecx
jg 0x48f838
cmp dword [0x552c28], 0
jne 0x48f838
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx]
mov dword [ebp - 0x234], eax
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp - 0x234]
movsx eax, byte [edx + ecx]
cmp eax, 0x3c
jne 0x48f838
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x234]
movsx eax, byte [edx + ecx]
cmp eax, 0x21
jne 0x48f838
mov ecx, dword [ebp + 0x30]
mov dword [ecx], 0
mov dword [0x4f1184], 0
jmp 0x48f943
cmp dword [0x5509f0], 0
jne 0x48f853
mov edx, dword [ebp + 0x30]
mov eax, dword [edx]
add eax, dword [0x5509f4]
mov ecx, dword [ebp + 0x30]
mov dword [ecx], eax
jmp 0x48f865
mov edx, dword [0x552c28]
add edx, dword [0x5509f4]
mov dword [0x552c28], edx
cmp dword [0x5509f0], 0
jne 0x48f870
jmp 0x48f8e7
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax]
add ecx, dword [0x5509f4]
mov edx, dword [ebp + 0x30]
mov dword [edx], ecx
push 0
lea eax, [ebp - 0x270]
push eax
mov ecx, dword [0x5509f4]
push ecx
mov edx, dword [ebp - 0x210]
push edx
mov eax, dword [0x5509f0]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x48f8e7
mov ecx, dword [0x5509f0]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x5509f0], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp + 0x14]
push edx
push str.WriteFile_to:__s_failed_____d
push 0x55d1c0
call fcn.004b6e08
add esp, 0x10
mov dword [0x4f1184], 0
jmp 0x48f943
cmp dword [0x550a6c], 0
jne 0x48f8fc
mov dword [ebp - 0x228], 1
jmp 0x48f906
mov dword [ebp - 0x228], 0
mov eax, dword [ebp - 0x228]
mov dword [0x550a6c], eax
cmp dword [0x5509f4], 0
jne 0x48f3e7
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0048fbc0
add esp, 4
push str.Done_reading_data
push 5
call fcn.00440830
add esp, 8
mov dword [0x550a78], 1
cmp dword [0x4f1184], 0
jne 0x48fa05
mov dword [ebp - 0x220], 0
push str.ERR_WININET:_Something_went_wrong.__Flush_the_line__1_.
push 1
call fcn.00440830
add esp, 8
mov dword [0x5509f4], 0
push 0x5509f4
push 0x32
push 0x55d2e0
mov edx, dword [0x5509ec]
push edx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x48f992
jmp 0x48f9f6
cmp dword [0x5509f4], 0
je 0x48f9e9
mov eax, dword [ebp - 0x220]
add eax, dword [0x5509f4]
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x220]
push ecx
mov edx, dword [0x5509f4]
push edx
push str.ERR_WININET:_reading_previous_data___ld____ld_
push 0x55d1c0
call fcn.004b6e08
add esp, 0x10
push 0x55d1c0
push 2
call fcn.00440830
add esp, 8
call fcn.00488e10
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x5509f4], 0
jne 0x48f969
push str.ERR_WININET:_Something_went_wrong.__Flush_the_line__2_.
push 1
call fcn.00440830
add esp, 8
cmp dword [0x5509f0], 0
je 0x48fa6e
mov eax, dword [0x5509f0]
push eax
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov ecx, dword [0x5509f0]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x5509f0], 0
cmp dword [ebp - 0x21c], 0
je 0x48fa6e
mov dword [ebp - 0x208], 0
push 0x4f0ea0
mov edx, dword [ebp + 0x14]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x48fa65
mov eax, dword [ebp + 0x14]
push eax
call fcn.0042a600
add esp, 4
mov ecx, dword [ebp + 0x30]
mov dword [ecx], 1
cmp dword [0x550a78], 1
jne 0x48faaa
mov edx, 1
imul edx, edx, 0
mov eax, dword [ebp + 0x14]
movsx ecx, byte [eax + edx]
test ecx, ecx
jne 0x48fa9f
push 0x4f0eac
mov edx, dword [ebp + 0xc]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x48faaa
call fcn.0048fbf0
mov dword [ebp - 0x20c], eax
cmp dword [ebp - 0x20c], 0
jne 0x48fabd
mov dword [0x4f1184], 0
mov eax, 1
imul eax, eax, 0
mov ecx, dword [ebp + 0x14]
movsx edx, byte [ecx + eax]
test edx, edx
je 0x48fb89
cmp dword [ebp - 0x208], 0xffffff9d
je 0x48fb89
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 0x208]
cmp ecx, dword [eax]
je 0x48fb89
mov edx, dword [ebp - 0x208]
push edx
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax]
push ecx
push str.ERROR:_Partial_download__ld__ld
lea edx, [ebp - 0x104]
push edx
call fcn.004b6e08
add esp, 0x10
lea eax, [ebp - 0x104]
push eax
push 0
call fcn.00440830
add esp, 8
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.00419360
add esp, 4
mov edx, dword [ebp + 0x14]
push edx
push str._s.bad
lea eax, [ebp - 0x104]
push eax
call fcn.004b6e08
add esp, 0xc
lea ecx, [ebp - 0x104]
push ecx
call fcn.00419360
add esp, 4
lea edx, [ebp - 0x104]
push edx
mov eax, dword [ebp + 0x14]
push eax
call fcn.0049b850
add esp, 8
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.00419360
add esp, 4
mov dword [0x4f1184], 0
mov edx, dword [ebp + 0x30]
mov dword [edx], 0
cmp dword [0x552c10], 2
je 0x48fba0
cmp dword [0x4f1180], 1
jne 0x48fba0
call fcn.0049a830
mov eax, dword [0x4f1184]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b6253
mov esp, ebp
pop ebp
ret