Function at 0x48b850
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, 0x35c
mov eax, dword [0x57c870]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x114], 0xffffff9d
mov dword [ebp - 8], 0
mov dword [0x5f9d9c], 0
mov dword [0x56c99c], 1
mov dword [0x5f4a70], 0
fldz
fstp dword [0x5f9e20]
mov dword [0x56c998], 1
cmp dword [0x56a5e0], 0xffffffff
jne 0x48b8b7
call fcn.00488340
mov dword [0x56a5e0], eax
mov eax, dword [ebp + 0x30]
mov dword [eax], 0
mov ecx, dword [ebp + 0x2c]
cmp dword [ecx], 0
jne 0x48b8d7
mov dword [0x56c99c], 0
jmp 0x48ca32
mov edx, dword [ebp + 0x14]
movsx eax, byte [edx]
test eax, eax
jne 0x48b8fd
push 0x56c9b8
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ecx]
push edx
call fcn.00532580
add esp, 8
mov eax, dword [ebp + 0x30]
mov dword [eax], 4
push str.GRPD_
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00532680
add esp, 8
test eax, eax
je 0x48b91c
mov dword [0x56c990], 0x1b7740
push str.STDR_
mov edx, dword [ebp + 0xc]
push edx
call fcn.00532680
add esp, 8
test eax, eax
jne 0x48b946
push str.FIND_
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532680
add esp, 8
test eax, eax
je 0x48b952
mov dword [0x56c990], 0x1d4c0
jmp 0x48b971
push str.CLSB_
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00532680
add esp, 8
test eax, eax
je 0x48b971
mov dword [0x56c990], 0x1d4c0
mov dword [0x56c990], 0xea60
mov edx, dword [ebp + 0x14]
movsx eax, byte [edx]
test eax, eax
jne 0x48b991
mov dword [0x56c998], 0
jmp 0x48b9f9
push str.VERSION
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.00532680
add esp, 8
test eax, eax
jne 0x48b9e5
push str.LESSON.
mov edx, dword [ebp + 0x14]
push edx
call fcn.00532680
add esp, 8
test eax, eax
jne 0x48b9e5
push str.ENG_LOC.EXE
mov eax, dword [ebp + 0x14]
push eax
call fcn.00532680
add esp, 8
test eax, eax
jne 0x48b9e5
push 0x56c9fc
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.00532680
add esp, 8
test eax, eax
je 0x48b9f9
mov dword [0x56c998], 0
mov dword [0x56c990], 0x2710
cmp dword [0x56c998], 1
jne 0x48ba75
call fcn.00492a90
push 0x71d600
push str.MSG_Message_PressToStopDownload1
push 0
call fcn.0046d1b0
add esp, 0xc
mov edx, dword [ebp + 0xc]
push edx
push 0x32
call fcn.004340e0
add esp, 8
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00532580
add esp, 8
lea ecx, [ebp - 0x110]
push ecx
push 0x71d840
push str.MSG_Message_Downloading
push 0
call fcn.0046ce90
add esp, 0x10
cmp dword [0x5fb6c0], 2
jne 0x48ba5f
jmp 0x48ba75
push 0x71d600
mov edx, dword [ebp + 0x14]
push edx
push 0x71d840
call fcn.00492be0
add esp, 0xc
push str.LGNL
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532680
add esp, 8
test eax, eax
jne 0x48bab4
push str.LGNR
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00532680
add esp, 8
test eax, eax
jne 0x48bab4
push str.LGNS
mov edx, dword [ebp + 0xc]
push edx
call fcn.00532680
add esp, 8
test eax, eax
je 0x48bad7
push 0x5fd218
push 0x56ca5c
push 0x5c67d8
push 0x56ca64
push 0x71d720
call fcn.00532706
add esp, 0x14
jmp 0x48baf8
push 0x5fd218
push str.Engine
push str.Windows
push str._DynEd__s__s__s_
push 0x71d720
call fcn.00532706
add esp, 0x14
mov eax, dword [ebp + 0x14]
movsx ecx, byte [eax]
test ecx, ecx
je 0x48bb10
cmp dword [0x5f9e28], 1
jne 0x48bb10
call fcn.0048cc90
cmp dword [0x5f9e28], 1
jne 0x48bb30
cmp dword [0x5f9d90], 0
je 0x48bb30
cmp dword [0x5f9d94], 0
je 0x48bb30
jmp 0x48be2a
mov edx, dword [ebp + 0x14]
movsx eax, byte [edx]
test eax, eax
je 0x48bc0f
mov dword [ebp - 0x120], 0xc
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
cmp dword [0x56a5e0], 1
je 0x48bb89
cmp dword [0x56a5e0], 2
je 0x48bb89
cmp dword [0x56a5e0], 3
je 0x48bb89
cmp dword [0x56a5e0], 6
je 0x48bb89
cmp dword [0x56a5e0], 7
jne 0x48bb92
mov dword [ebp - 4], 1
jmp 0x48bb99
mov dword [ebp - 4], 5
push 0
push 0x80
push 2
lea ecx, [ebp - 0x120]
push ecx
mov edx, dword [ebp - 4]
push edx
push 0x40000000
mov eax, dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x5f9d9c], eax
cmp dword [0x5f9d9c], 0xffffffff
jne 0x48bc0f
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 0x71e1a0
call fcn.00532706
add esp, 0x10
push 0x71e1a0
push 1
call fcn.00436500
add esp, 8
mov dword [0x5f9d9c], 0
mov dword [0x56c99c], 0
jmp 0x48ca32
mov dword [0x5f9d90], 0
mov edx, dword [ebp + 0x10]
movsx eax, byte [edx]
test eax, eax
je 0x48bc38
push 0x56cabc
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.005327a0
add esp, 8
test eax, eax
jne 0x48bc7c
push 0
push 0
push 0
push 1
push 0x71d720
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [0x5f9d90], eax
cmp dword [0x5f9d90], 0
jne 0x48bc7c
push str.InternetOpen_1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
cmp dword [0x5f9d90], 0
jne 0x48bd34
push str.auto
mov edx, dword [ebp + 0x10]
push edx
call fcn.00532680
add esp, 8
test eax, eax
je 0x48bce4
push 0
push 0
push 0
push 0
push 0x71d720
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [0x5f9d90], eax
cmp dword [0x5f9d90], 0
jne 0x48bce2
push str.InternetOpen_2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
jmp 0x48bd34
mov eax, dword [ebp + 0x10]
movsx ecx, byte [eax]
test ecx, ecx
je 0x48bd08
push 0
push 0
mov edx, dword [ebp + 0x10]
push edx
push 3
push 0x71d720
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [0x5f9d90], eax
cmp dword [0x5f9d90], 0
jne 0x48bd34
push str.InternetOpen_3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
cmp dword [ebp + 0x28], 0
je 0x48bd78
push 0x48cd70
mov eax, dword [0x5f9d90]
push eax
call dword [sym.imp.WININET.dll_InternetSetStatusCallback]
cmp eax, 0xffffffff
jne 0x48bd78
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetCallBack_error:__d
push 0x71e1a0
call fcn.00532706
add esp, 0xc
mov dword [0x56c99c], 0
jmp 0x48ca32
cmp dword [ebp + 0x1c], 0
je 0x48bdad
mov ecx, 0x1bb
mov word [0x71d710], cx
mov edx, dword [0x56c98c]
or edx, 0x800000
mov dword [0x56c98c], edx
mov eax, dword [0x56c98c]
or eax, 0x803000
mov dword [0x56c98c], eax
jmp 0x48bdd7
xor ecx, ecx
mov word [0x71d710], cx
push 0x5f6d98
mov edx, dword [ebp + 8]
push edx
call fcn.005327a0
add esp, 8
test eax, eax
jne 0x48bdd7
mov ax, word [0x5f6628]
mov word [0x71d710], ax
push 0
push 0
push 3
push 0
push 0
movzx ecx, word [0x71d710]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [0x5f9d90]
push eax
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [0x5f9d94], eax
cmp dword [0x5f9d94], 0
jne 0x48be2a
push str.InternetConnect
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
cmp dword [ebp + 0x20], 0
je 0x48be64
push 0x56cb20
push 0x71d940
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [ebp + 0x24]
mov dword [0x71d704], ecx
mov edx, dword [ebp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [0x71d70c], eax
mov dword [0x5f9dac], 0x56cb28
jmp 0x48beb3
push 0x56cb78
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532680
add esp, 8
test eax, eax
je 0x48be85
mov dword [0x5f9dac], str.Connection:_close
jmp 0x48be8f
mov dword [0x5f9dac], str.Proxy_Connection:_Keep_Alive
push 0x56cbb4
push 0x71d940
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [0x71d704], 0
mov dword [0x71d70c], 0
push 0
mov ecx, dword [0x56c98c]
push ecx
push 0x56c984
push 0x5f9de2
push 0
mov edx, dword [ebp + 0xc]
push edx
push 0x71d940
mov eax, dword [0x5f9d94]
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov dword [0x5f9d98], eax
cmp dword [0x5f9d98], 0
jne 0x48bf21
cmp dword [0x5f9e28], 1
jne 0x48befe
call fcn.0048cc90
jmp 0x48baf8
push str.HttpOpenRequest
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
push 4
push 0x56c990
push 6
mov ecx, dword [0x5f9d98]
push ecx
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48bf5e
push str.InternetSetOption_INTERNET_OPTION_RECEIVE_TIMEOUT
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
push 4
push 0x56c990
push 5
mov edx, dword [0x5f9d98]
push edx
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48bf9b
push str.InternetSetOption_INTERNET_OPTION_SEND_TIMEOUT
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
push 4
push 0x56c990
push 2
mov eax, dword [0x5f9d98]
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48bfd7
push str.InternetSetOption_INTERNET_OPTION_CONNECT_TIMEOUT
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
push 4
push 0x56c994
push 3
mov ecx, dword [0x5f9d98]
push ecx
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48c014
push str.InternetSetOption_INTERNET_OPTION_CONNECT_RETRIES
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
mov edx, dword [0x5f9dac]
push edx
call fcn.00532e80
add esp, 4
mov dword [0x5f9da4], eax
push str.HttpSendRequest_1
push 5
call fcn.00436500
add esp, 8
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x124], eax
mov eax, dword [0x71d70c]
push eax
mov ecx, dword [0x71d704]
push ecx
mov edx, dword [0x5f9da4]
push edx
mov eax, dword [0x5f9dac]
push eax
mov ecx, dword [0x5f9d98]
push ecx
call dword [sym.imp.WININET.dll_HttpSendRequestA]
mov dword [0x71d820], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x124]
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x358], 0
fild qword [ebp - 0x35c]
fdiv qword [0x54c3e0]
sub esp, 8
fstp qword [esp]
push str.SEND_COMMAND:___3.3f_
lea edx, [ebp - 0x228]
push edx
call fcn.00532706
add esp, 0x10
lea eax, [ebp - 0x228]
push eax
push 3
call fcn.00436500
add esp, 8
push str.HttpSendRequest_2
push 5
call fcn.00436500
add esp, 8
cmp dword [0x71d820], 0
jne 0x48c110
push str.HttpSend_1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
cmp dword [ebp + 0x1c], 0
je 0x48c101
call fcn.0048b700
mov dword [0x56c99c], 0
jmp 0x48ca32
cmp dword [ebp + 0x1c], 0
je 0x48c12e
call fcn.0048b700
test eax, eax
jne 0x48c12e
mov dword [0x56c99c], 0
jmp 0x48ca32
cmp dword [ebp + 0x18], 0
je 0x48c169
push 0
push 7
mov ecx, dword [0x5f9da8]
push ecx
mov edx, dword [0x5f9d98]
push edx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.WININET.dll_InternetErrorDlg]
mov dword [0x71d714], eax
cmp dword [0x71d714], 0x2f00
jne 0x48c169
jmp 0x48c014
mov dword [0x5f9da0], 4
push 0
push 0x5f9da0
push 0x71d824
push 0x20000013
mov eax, dword [0x5f9d98]
push eax
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
jne 0x48c1b7
push 0x56cce0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
cmp dword [ebp + 0x18], 0
jne 0x48c382
cmp dword [0x71d824], 0x191
je 0x48c1dd
cmp dword [0x71d824], 0x197
jne 0x48c382
mov dword [ebp - 0x22c], 0
mov dword [0x5f9da0], 0
push 0x5f9da0
push 0x32
push 0x71e160
mov ecx, dword [0x5f9d98]
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x48c210
jmp 0x48c274
cmp dword [0x5f9da0], 0
je 0x48c267
mov edx, dword [ebp - 0x22c]
add edx, dword [0x5f9da0]
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x22c]
push eax
mov ecx, dword [0x5f9da0]
push ecx
push 0x56ccf0
push 0x71e1a0
call fcn.00532706
add esp, 0x10
push 0x71e1a0
push 2
call fcn.00436500
add esp, 8
call fcn.00484fa0
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x5f9da0], 0
jne 0x48c1e7
cmp dword [0x71d824], 0x191
jne 0x48c294
push str.This_page_is__password_protected.
push 0x71e1a0
call fcn.00532706
add esp, 8
jmp 0x48c2a6
push str.Proxy_authentication_is_required.
push 0x71e1a0
call fcn.00532706
add esp, 8
cmp dword [0x71d824], 0x191
jne 0x48c2c8
mov dword [0x71d700], 0x1c
mov dword [0x71e194], 0x1d
jmp 0x48c2dc
mov dword [0x71d700], 0x2b
mov dword [0x71e194], 0x2c
push 0x5f9db0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push 0x5f9db0
mov edx, dword [0x71d700]
push edx
mov eax, dword [0x5f9d94]
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48c32c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x56cd68
push 0x71e1a0
call fcn.00532706
add esp, 0xc
mov dword [0x56c99c], 0
jmp 0x48ca32
push 0x5f9de4
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push 0x5f9de4
mov ecx, dword [0x71e194]
push ecx
mov edx, dword [0x5f9d94]
push edx
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x48c37d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.InternetSetOptionFailed:__d
push 0x71e1a0
call fcn.00532706
add esp, 0xc
mov dword [0x56c99c], 0
jmp 0x48ca32
jmp 0x48c014
push 0
push 0x5f9da0
push 0
push 0x16
mov eax, dword [0x5f9d98]
push eax
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
push 0
push 0x5f9da0
push 0x71d960
push 0x16
mov ecx, dword [0x5f9d98]
push ecx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
jne 0x48c3db
push str.HttpQueryInfo
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
mov edx, dword [0x5f9da0]
mov byte [edx + 0x71d960], 0
mov dword [0x5f9da0], 4
push 0
push 0x5f9da0
lea eax, [ebp - 0x230]
push eax
push 0x13
mov ecx, dword [0x5f9d98]
push ecx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
push 0x56cdb0
lea edx, [ebp - 0x230]
push edx
call fcn.005327a0
add esp, 8
test eax, eax
je 0x48c457
push 0x71d960
push 1
call fcn.00436500
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
push str.http:___s_s
push 0x11024c0
call fcn.00532706
add esp, 0x10
mov dword [ebp - 8], 1
mov edx, dword [ebp + 0x14]
movsx eax, byte [edx]
test eax, eax
je 0x48c49c
mov dword [ebp - 0x238], 4
push 0
lea ecx, [ebp - 0x238]
push ecx
lea edx, [ebp - 0x234]
push edx
push 0x20000005
mov eax, dword [0x5f9d98]
push eax
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x48c49c
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x114], ecx
cmp dword [0x56c998], 1
jne 0x48c509
cmp dword [ebp - 0x114], 0xffffff9d
je 0x48c4fa
cmp dword [0x5fb6c0], 2
jne 0x48c4b9
jmp 0x48c4e7
mov dword [0x5fb6c0], 1
mov dword [0x56df78], 0
mov edx, dword [ebp - 0x114]
mov dword [0x56df7c], edx
push 0
push 0
push 0
call fcn.00492be0
add esp, 0xc
call fcn.00483eb0
fadd qword [0x54b6a8]
fstp dword [0x5f9e20]
jmp 0x48c509
mov dword [0x56c998], 0
call fcn.00492da0
cmp dword [ebp - 8], 0
jne 0x48c51c
push 0x71d960
call fcn.0046ea80
add esp, 4
mov dword [0x5f9d68], 0x28
mov eax, dword [0x5f9d68]
mov dword [0x5f9d40], eax
mov byte [0xeae820], 0
mov dword [0x5f9e24], 0
push str.Start_reading_data
push 5
call fcn.00436500
add esp, 8
push 0
push 0
push 0x5f9da0
mov ecx, dword [0x5f9d98]
push ecx
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
jne 0x48c5c8
push str.ERR_WININET:_waiting_for_data_1
push 2
call fcn.00436500
add esp, 8
mov edx, dword [0x5f9da0]
push edx
push 0x56cdf4
lea eax, [ebp - 0x110]
push eax
call fcn.00532706
add esp, 0xc
lea ecx, [ebp - 0x110]
push ecx
push 2
call fcn.00436500
add esp, 8
push str.InternetQueryDataAvailable_1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
mov edx, dword [0x5f9da0]
push edx
push str.InternetQueryDataAvailable_size__ld
lea eax, [ebp - 0x110]
push eax
call fcn.00532706
add esp, 0xc
lea ecx, [ebp - 0x110]
push ecx
push 4
call fcn.00436500
add esp, 8
call fcn.00484fa0
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
movsx edx, byte [0xeae820]
cmp edx, 0x1b
jne 0x48c6a1
push 0x56ce5c
push str.MSG_Button_Stop
push 0x56ce8c
push str.MSG_Message_FilesBeingCopied
call fcn.00422b80
add esp, 0x10
mov dword [0x71d820], eax
mov byte [0xeae820], 0
cmp dword [0x71d820], 2
jne 0x48c6a1
push str.Download_interrupted_by_user
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov eax, dword [ebp + 0x14]
movsx ecx, byte [eax]
test ecx, ecx
je 0x48c675
push 0x56cee8
mov edx, dword [ebp + 0x14]
push edx
call fcn.00532680
add esp, 8
test eax, eax
jne 0x48c67e
mov eax, dword [ebp + 0x30]
mov dword [eax], 0
mov dword [0x56c99c], 0
mov dword [0x5f9e24], 1
mov dword [0x5c6bdc], 1
jmp 0x48caf4
cmp dword [0x5f711c], 0
je 0x48c79c
mov ecx, dword [ebp + 0x30]
mov edx, dword [ecx]
mov eax, dword [0x5f9da0]
lea ecx, [edx + eax + 1]
mov dword [ebp - 0x23c], ecx
cmp dword [0x5f9d9c], 0
je 0x48c6da
mov edx, dword [0x5f9da0]
add edx, 1
mov dword [ebp - 0x23c], edx
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax]
push ecx
push 0
mov edx, dword [0x5f711c]
push edx
call dword [sym.imp.KERNEL32.dll_HeapSize]
mov dword [0x71d708], eax
mov eax, dword [ebp - 0x23c]
cmp eax, dword [0x71d708]
jle 0x48c79c
push str.ERR_WININET:_Reallocating_1
push 2
call fcn.00436500
add esp, 8
mov ecx, dword [ebp - 0x23c]
push ecx
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx]
push eax
push 8
mov ecx, dword [0x5f711c]
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.00436500
add esp, 8
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax]
push ecx
push 0
mov edx, dword [0x5f711c]
push edx
call dword [sym.imp.KERNEL32.dll_HeapSize]
mov dword [0x71d708], eax
mov eax, dword [ebp + 0x2c]
cmp dword [eax], 0
jne 0x48c792
push 0x5f9de3
push 0x5f9e16
push 0x56cf28
push str.Memory_Error
call fcn.00422b80
add esp, 0x10
mov dword [0x56c99c], 0xffffffff
jmp 0x48ca32
push 0x32
call fcn.00427720
add esp, 4
cmp dword [0x5f9da0], 0
je 0x48c9fb
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [ebp + 0x30]
add edx, dword [eax]
mov dword [ebp - 0x240], edx
cmp dword [0x5f9d9c], 0
je 0x48c7cd
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x244], 0
lea eax, [ebp - 0x244]
push eax
mov ecx, dword [0x5f9da0]
push ecx
mov edx, dword [ebp - 0x240]
push edx
mov eax, dword [0x5f9d98]
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x48c81f
push str.InternetReadFileEx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0048b6a0
add esp, 8
mov dword [0x56c99c], 0
jmp 0x48ca32
cmp dword [0x5fb6c0], 2
jne 0x48c83c
mov ecx, dword [0x56df78]
add ecx, dword [0x5f9da0]
mov dword [0x56df78], ecx
jmp 0x48c848
mov edx, dword [0x5f4a70]
mov dword [0x56df78], edx
call fcn.00483eb0
fld dword [0x5f9e20]
fcompp
fnstsw ax
test ah, 5
jp 0x48c8db
cmp dword [0x56c998], 1
jne 0x48c8db
cmp dword [0x5fb6c0], 2
jne 0x48c8bc
mov eax, dword [ebp + 0x14]
push eax
push 0x3c
call fcn.00433ff0
add esp, 8
push eax
lea ecx, [ebp - 0x110]
push ecx
call fcn.00532580
add esp, 8
lea edx, [ebp - 0x110]
push edx
push 0x56cf5c
lea eax, [ebp - 0x348]
push eax
call fcn.00532706
add esp, 0xc
push 0
lea ecx, [ebp - 0x348]
push ecx
push 0
call fcn.00492be0
add esp, 0xc
jmp 0x48c8ca
push 0
push 0
push 0
call fcn.00492be0
add esp, 0xc
call fcn.00483eb0
fadd qword [0x54b6a8]
fstp dword [0x5f9e20]
mov edx, dword [ebp - 0x240]
add edx, dword [0x5f9da0]
mov byte [edx], 0
cmp dword [ebp - 0x114], 0xffffff9d
je 0x48c94c
mov eax, dword [0x5f9da0]
imul eax, eax, 3
cmp dword [ebp - 0x114], eax
jg 0x48c94c
cmp dword [0x5f4a70], 0
jne 0x48c94c
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x34c], edx
mov eax, dword [ebp - 0x34c]
movsx ecx, byte [eax]
cmp ecx, 0x3c
jne 0x48c94c
mov edx, dword [ebp - 0x34c]
movsx eax, byte [edx + 1]
cmp eax, 0x21
jne 0x48c94c
mov ecx, dword [ebp + 0x30]
mov dword [ecx], 0
mov dword [0x56c99c], 0
jmp 0x48ca32
cmp dword [0x5f9d9c], 0
jne 0x48c967
mov edx, dword [ebp + 0x30]
mov eax, dword [edx]
add eax, dword [0x5f9da0]
mov ecx, dword [ebp + 0x30]
mov dword [ecx], eax
jmp 0x48c979
mov edx, dword [0x5f4a70]
add edx, dword [0x5f9da0]
mov dword [0x5f4a70], edx
cmp dword [0x5f9d9c], 0
jne 0x48c984
jmp 0x48c9fb
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax]
add ecx, dword [0x5f9da0]
mov edx, dword [ebp + 0x30]
mov dword [edx], ecx
push 0
lea eax, [ebp - 0x350]
push eax
mov ecx, dword [0x5f9da0]
push ecx
mov edx, dword [ebp - 0x240]
push edx
mov eax, dword [0x5f9d9c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x48c9fb
mov ecx, dword [0x5f9d9c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x5f9d9c], 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 0x71e1a0
call fcn.00532706
add esp, 0x10
mov dword [0x56c99c], 0
jmp 0x48ca32
xor eax, eax
cmp dword [0x5f9e18], 0
sete al
mov dword [0x5f9e18], eax
cmp dword [0x5f9da0], 0
jne 0x48c550
push str.Done_reading_data
push 5
call fcn.00436500
add esp, 8
mov dword [0x5f9e28], 1
cmp dword [0x56c99c], 0
jne 0x48caf4
mov dword [ebp - 0x354], 0
push str.ERR_WININET:_Something_went_wrong.__Flush_the_line__1_.
push 1
call fcn.00436500
add esp, 8
mov dword [0x5f9da0], 0
push 0x5f9da0
push 0x32
push 0x71e160
mov ecx, dword [0x5f9d98]
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x48ca81
jmp 0x48cae5
cmp dword [0x5f9da0], 0
je 0x48cad8
mov edx, dword [ebp - 0x354]
add edx, dword [0x5f9da0]
mov dword [ebp - 0x354], edx
mov eax, dword [ebp - 0x354]
push eax
mov ecx, dword [0x5f9da0]
push ecx
push str.ERR_WININET:_reading_previous_data___ld____ld_
push 0x71e1a0
call fcn.00532706
add esp, 0x10
push 0x71e1a0
push 2
call fcn.00436500
add esp, 8
call fcn.00484fa0
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x5f9da0], 0
jne 0x48ca58
push str.ERR_WININET:_Something_went_wrong.__Flush_the_line__2_.
push 1
call fcn.00436500
add esp, 8
cmp dword [0x5f9d9c], 0
je 0x48cb5a
mov edx, dword [0x5f9d9c]
push edx
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov eax, dword [0x5f9d9c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x5f9d9c], 0
cmp dword [ebp - 8], 0
je 0x48cb5a
mov dword [ebp - 0x114], 0
push str.CONNECTED
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.00532680
add esp, 8
test eax, eax
jne 0x48cb51
mov edx, dword [ebp + 0x14]
push edx
call fcn.0042bb20
add esp, 4
mov eax, dword [ebp + 0x30]
mov dword [eax], 1
cmp dword [0x5f9e28], 1
jne 0x48cb8c
mov ecx, dword [ebp + 0x14]
movsx edx, byte [ecx]
test edx, edx
jne 0x48cb82
push str.QUIT_
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532680
add esp, 8
test eax, eax
je 0x48cb8c
call fcn.0048cc90
mov dword [0x71d820], eax
cmp dword [0x71d820], 0
jne 0x48cb9f
mov dword [0x56c99c], 0
mov ecx, dword [ebp + 0x14]
movsx edx, byte [ecx]
test edx, edx
je 0x48cc62
cmp dword [ebp - 0x114], 0xffffff9d
je 0x48cc62
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 0x114]
cmp ecx, dword [eax]
je 0x48cc62
mov edx, dword [ebp - 0x114]
push edx
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax]
push ecx
push str.ERROR:_Partial_download__ld__ld
lea edx, [ebp - 0x110]
push edx
call fcn.00532706
add esp, 0x10
lea eax, [ebp - 0x110]
push eax
push 0
call fcn.00436500
add esp, 8
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.00429360
add esp, 4
mov edx, dword [ebp + 0x14]
push edx
push str._s.bad
lea eax, [ebp - 0x110]
push eax
call fcn.00532706
add esp, 0xc
lea ecx, [ebp - 0x110]
push ecx
call fcn.00429360
add esp, 4
lea edx, [ebp - 0x110]
push edx
mov eax, dword [ebp + 0x14]
push eax
call fcn.00488210
add esp, 8
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.00429360
add esp, 4
mov dword [0x56c99c], 0
mov edx, dword [ebp + 0x30]
mov dword [edx], 0
cmp dword [0x56c998], 1
jne 0x48cc79
cmp dword [0x5fb6c0], 2
je 0x48cc79
call fcn.00492da0
mov eax, dword [0x56c99c]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00532783
mov esp, ebp
pop ebp
ret