Function at 0x45c818
Capabilities:
Check http status code
Read data from internet
Receive data

Disassembly:
push 0x934
mov eax, 0x47ca32
call fcn.0043cbbb
mov esi, ecx
mov eax, dword [esi + 0x30]
add eax, 0xa0
push eax
lea ecx, [ebp - 0x8b8]
call fcn.0040e8cd
lea eax, [ebp - 0x82c]
xor edi, edi
push eax
lea ecx, [esi + 0x34]
mov dword [ebp - 4], edi
call fcn.00417f1a
lea eax, [ebp - 0x82c]
push eax
lea ecx, [ebp - 0x874]
mov byte [ebp - 4], 1
call fcn.004102bd
push eax
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], 2
call fcn.00403996
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], 3
call fcn.0040827c
lea ecx, [ebp - 0x864]
call fcn.00403632
lea ecx, [ebp - 0x86c]
call fcn.00403632
push edi
push 1
lea ecx, [ebp - 0x82c]
mov byte [ebp - 4], 6
call fcn.00408375
lea eax, [ebp - 0x940]
push eax
lea eax, [ebp - 0x8d0]
push eax
call fcn.0045d429
pop ecx
pop ecx
push edi
push 0xffffffffffffffff
push str.HEAD
lea ecx, [ebp - 0x858]
call fcn.00408f1a
mov eax, dword [esi]
lea ecx, [ebp - 0x858]
push ecx
mov ecx, esi
mov byte [ebp - 4], 7
call dword [eax + 0x60]
lea ecx, [ebp - 0x848]
mov byte [ebp - 4], 6
call fcn.00403632
lea ecx, [ebp - 0x850]
call fcn.00403632
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
cmp dword [esi + 0xe8], edi
jne 0x45c92a
lea eax, [ebp - 0x940]
push eax
call fcn.0045d6ed
pop ecx
push eax
lea ecx, [esi + 0xe8]
call fcn.004538ae
cmp dword [esi + 0xec], edi
je 0x45c99d
lea ecx, [esi + 0xf0]
call fcn.0040827c
mov eax, dword [esi + 0xf4]
lea ecx, [esi + 0xf0]
mov dword [ebp - 0x83c], eax
call fcn.0040827c
push dword [ebp - 0x83c]
mov ecx, dword [esi + 0xe8]
mov edi, dword [sym.imp.WININET.dll_InternetSetOptionA]
push eax
push 0x1c
push ecx
call edi
lea ecx, [esi + 0x108]
call fcn.0040827c
lea ecx, [esi + 0x108]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x83c], eax
call fcn.0040827c
push dword [ebp - 0x83c]
mov ecx, dword [esi + 0xe8]
push eax
push 0x1d
push ecx
call edi
mov eax, dword [esi + 0xe8]
push 0x493e0
lea ecx, [ebp - 0x940]
push ecx
push str.HEAD
push eax
call fcn.0045d82b
add esp, 0x10
push eax
lea ecx, [esi + 0xe4]
call fcn.004538ae
cmp dword [esi + 0xe4], 0
jne 0x45ca04
mov esi, dword [0x48a104]
lea ecx, [ebp - 0x8c0]
call fcn.00403632
lea ecx, [ebp - 0x8c8]
call fcn.00403632
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8b8]
call fcn.0040e7fe
mov eax, esi
jmp 0x45d373
lea eax, [ebp - 0x858]
push eax
mov ecx, esi
call fcn.00453945
push eax
lea ecx, [ebp - 0x890]
mov byte [ebp - 4], 8
call fcn.00403996
lea ecx, [ebp - 0x890]
mov byte [ebp - 4], 9
call fcn.0040827c
lea ecx, [ebp - 0x848]
mov byte [ebp - 4], 0xb
call fcn.00403632
lea ecx, [ebp - 0x850]
call fcn.00403632
lea ecx, [ebp - 0x890]
call fcn.0040827c
mov eax, dword [ebp - 0x88c]
lea ecx, [ebp - 0x890]
mov dword [ebp - 0x83c], eax
call fcn.0040827c
mov ecx, dword [esi + 0xe4]
push 0xa0000000
push dword [ebp - 0x83c]
push eax
push ecx
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
mov eax, dword [esi + 0xe4]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push eax
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
jne 0x45cae3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x2eef
je 0x45cae3
mov eax, dword [esi + 0xe4]
test eax, eax
je 0x45cac2
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
and dword [esi + 0xe4], 0
mov esi, dword [0x48a104]
lea ecx, [ebp - 0x880]
call fcn.00403632
lea ecx, [ebp - 0x888]
call fcn.00403632
jmp 0x45c9d8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov eax, dword [esi + 0x140]
mov eax, dword [eax + 8]
mov dword [ebp - 0x830], eax
cmp eax, 0x12c
jb 0x45cb43
cmp eax, 0x130
je 0x45cb43
mov eax, dword [esi + 0xe4]
test eax, eax
je 0x45cb22
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
and dword [esi + 0xe4], 0
lea ecx, [ebp - 0x880]
call fcn.00403632
lea ecx, [ebp - 0x888]
call fcn.00403632
mov esi, dword [ebp - 0x830]
jmp 0x45c9d8
push dword [esi + 0xe4]
push 5
call fcn.0045d3ee
push dword [esi + 0xe4]
mov dword [ebp - 0x840], eax
lea eax, [ebp - 0x8e8]
push 0x36
push eax
call fcn.0045d588
push dword [esi + 0xe4]
lea eax, [ebp - 0x904]
push 0xb
push eax
mov byte [ebp - 4], 0xc
call fcn.0045d588
add esp, 0x20
cmp dword [ebp - 0x830], 0x130
mov byte [ebp - 4], 0xd
jne 0x45cce3
cmp dword [ebp - 0x840], 0xffffffff
jne 0x45cbb1
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x94]
mov dword [ebp - 0x840], eax
push 0
push 0xffffffffffffffff
push 0x47fd28
lea ecx, [ebp - 0x858]
call fcn.00408f1a
push 0
push 0
lea eax, [ebp - 0x858]
push eax
lea ecx, [ebp - 0x8e8]
mov byte [ebp - 4], 0xe
call fcn.0040945e
neg ax
sbb al, al
inc al
lea ecx, [ebp - 0x848]
mov byte [ebp - 0x831], al
mov byte [ebp - 4], 0xd
call fcn.00403632
lea ecx, [ebp - 0x850]
call fcn.00403632
cmp byte [ebp - 0x831], 0
je 0x45cc4a
mov ecx, dword [esi + 0x30]
lea eax, [ebp - 0x858]
push eax
call fcn.0041d3e7
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x8e8]
mov byte [ebp - 4], 0xf
call fcn.00408ad4
lea ecx, [ebp - 0x848]
mov byte [ebp - 4], 0xd
call fcn.00403632
lea ecx, [ebp - 0x850]
call fcn.00403632
push 0
push 0xffffffffffffffff
push 0x47fd28
lea ecx, [ebp - 0x858]
call fcn.00408f1a
push 0
push 0
lea eax, [ebp - 0x858]
push eax
lea ecx, [ebp - 0x904]
mov byte [ebp - 4], 0x10
call fcn.0040945e
neg ax
sbb al, al
inc al
lea ecx, [ebp - 0x848]
mov byte [ebp - 0x831], al
mov byte [ebp - 4], 0xd
call fcn.00403632
lea ecx, [ebp - 0x850]
call fcn.00403632
cmp byte [ebp - 0x831], 0
je 0x45cce3
mov ecx, dword [esi + 0x30]
lea eax, [ebp - 0x858]
push eax
call fcn.0041d402
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x904]
mov byte [ebp - 4], 0x11
call fcn.00408ad4
lea ecx, [ebp - 0x848]
mov byte [ebp - 4], 0xd
call fcn.00403632
lea ecx, [ebp - 0x850]
call fcn.00403632
mov ecx, dword [esi + 0xe4]
xor eax, eax
cmp ecx, eax
je 0x45ccff
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
and dword [esi + 0xe4], 0
xor eax, eax
lea ecx, [ebp - 0x8a8]
mov dword [ebp - 0x8a8], eax
mov dword [ebp - 0x8a4], eax
mov dword [ebp - 0x898], eax
mov dword [ebp - 0x894], eax
mov dword [ebp - 0x8a0], eax
mov dword [ebp - 0x89c], eax
lea eax, [esi + 0x16c]
push ecx
push eax
mov dword [ebp - 0x838], eax
call fcn.0040ac4d
cmp dword [ebp - 0x830], 0x130
pop ecx
pop ecx
jne 0x45cde0
test eax, eax
jne 0x45d2cd
push 3
or dword [ebp - 0x85c], 0xffffffff
pop eax
push eax
push 4
push 0x12019f
push dword [ebp - 0x838]
lea ecx, [ebp - 0x85c]
mov byte [ebp - 4], 0x12
call fcn.0040a9b2
test eax, eax
je 0x45cde7
push 0
push 0xffffffffffffffff
push str.unable_to_open_temp_file
lea ecx, [ebp - 0x828]
call fcn.00408f1a
push dword [ebp - 0x838]
lea eax, [ebp - 0x828]
push eax
lea eax, [ebp - 0x858]
push eax
mov byte [ebp - 4], 0x13
call fcn.004039d5
add esp, 0xc
push eax
lea ecx, [ebp - 0x874]
mov byte [ebp - 4], 0x14
mov dword [ebp - method.RSException.virtual_0], vtable.RSException.0
call fcn.00403996
push 0x490a04
lea eax, [ebp - 0x878]
push eax
call sub.MSVCR100.dll__CxxThrowException
push 2
jmp 0x45cd58
lea eax, [ebp - 0x8a8]
push eax
push dword [ebp - 0x838]
call fcn.0040ac4d
mov eax, dword [ebp - 0x840]
pop ecx
pop ecx
cmp eax, dword [ebp - 0x8a4]
jae 0x45ce42
lea ecx, [ebp - 0x85c]
call fcn.0040a865
push 2
push 4
push 0x12019f
push dword [ebp - 0x838]
lea ecx, [ebp - 0x85c]
call fcn.0040a9b2
lea eax, [ebp - 0x8a8]
push eax
push dword [ebp - 0x838]
call fcn.0040ac4d
pop ecx
pop ecx
mov eax, dword [ebp - 0x8a4]
mov dword [ebp - 0x838], eax
cmp eax, dword [ebp - 0x840]
jae 0x45d2be
cmp dword [esi + 0xe0], 0
je 0x45ce88
mov ecx, dword [esi + 0xe0]
mov eax, dword [ecx]
lea edx, [ebp - 0x904]
push edx
lea edx, [ebp - 0x8e8]
push edx
push dword [ebp - 0x8a4]
push dword [ebp - 0x840]
call dword [eax + 4]
mov eax, dword [esi + 0xe8]
push 0x493e0
lea ecx, [ebp - 0x940]
push ecx
mov ebx, 0x48a2a4
push ebx
push eax
call fcn.0045d82b
add esp, 0x10
push eax
lea ecx, [esi + 0xe4]
call fcn.004538ae
push 0
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x858]
call fcn.00408f1a
mov eax, dword [esi]
lea ecx, [ebp - 0x858]
push ecx
mov ecx, esi
mov byte [ebp - 4], 0x15
call dword [eax + 0x60]
lea ecx, [ebp - 0x848]
mov byte [ebp - 4], 0x12
call fcn.00403632
lea ecx, [ebp - 0x850]
call fcn.00403632
mov eax, dword [esi + 0x30]
lea ecx, [ebp - 0x8b8]
push ecx
lea ecx, [eax + 0xa0]
call fcn.0041a293
lea ecx, [esi + 0x20]
call fcn.0040e55c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
lea eax, [ebp - 0x874]
push eax
mov ecx, esi
call fcn.00453945
push eax
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x16
call fcn.00403996
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x17
call fcn.0040827c
push 0xffffffffffffffff
lea eax, [ebp - 0x858]
push eax
lea ecx, [ebp - 0x890]
mov byte [ebp - 4], 0x18
call fcn.00408ad4
lea ecx, [ebp - 0x848]
call fcn.00403632
lea ecx, [ebp - 0x850]
call fcn.00403632
lea ecx, [ebp - 0x864]
mov byte [ebp - 4], 0x12
call fcn.00403632
lea ecx, [ebp - 0x86c]
call fcn.00403632
mov ecx, dword [esi + 0xe0]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x45d167
mov edx, dword [ebp - 0x838]
mov ecx, dword [ebp - 0x840]
lea eax, [edx + 0x3e800]
dec ecx
cmp eax, ecx
jae 0x45cfb6
mov ecx, eax
mov eax, dword [esi + 0xe4]
push ecx
push edx
push eax
call fcn.0045d4d2
add esp, 0xc
push 0
push 0xffffffffffffffff
push 0x482010
lea ecx, [ebp - 0x874]
call fcn.00408f1a
and dword [ebp - 0x830], 0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x890]
call fcn.0040827c
mov eax, dword [ebp - 0x830]
cmp eax, dword [ebp - 0x88c]
jae 0x45d0e5
push eax
lea eax, [ebp - 0x874]
push eax
lea ecx, [ebp - 0x890]
call fcn.00409b9c
mov ebx, eax
push ebx
push dword [ebp - 0x830]
lea eax, [ebp - 0x828]
push eax
lea ecx, [ebp - 0x890]
call fcn.004091df
push eax
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x1a
call fcn.00403996
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x1b
call fcn.0040827c
lea ecx, [ebp - 0x818]
mov byte [ebp - 4], 0x1d
call fcn.00403632
lea ecx, [ebp - 0x820]
call fcn.00403632
lea ecx, [ebp - 0x858]
call fcn.0040827c
mov eax, dword [ebp - 0x854]
lea ecx, [ebp - 0x858]
mov dword [ebp - 0x830], eax
call fcn.0040827c
mov ecx, dword [esi + 0xe4]
push 0xa0000000
push dword [ebp - 0x830]
push eax
push ecx
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
lea ecx, [ebp - 0x874]
call fcn.0040830e
mov eax, dword [ebp - 0x870]
add eax, ebx
lea ecx, [ebp - 0x848]
mov dword [ebp - 0x830], eax
mov byte [ebp - 4], 0x19
call fcn.00403632
lea ecx, [ebp - 0x850]
call fcn.00403632
cmp dword [ebp - 0x830], 0xffffffff
jne 0x45cfe6
mov eax, dword [esi + 0xe4]
mov ebx, dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
push 0xa0000000
push 0xffffffffffffffff
push str.If_None_Match
push eax
call ebx
mov eax, dword [esi + 0xe4]
push 0xa0000000
push 0xffffffffffffffff
push str.If_Modified_Since
push eax
call ebx
mov eax, dword [esi + 0xe4]
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push eax
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
je 0x45d14d
push dword [esi + 0xe4]
push 0x13
call fcn.0045d3ee
pop ecx
pop ecx
cmp eax, 0xc8
jl 0x45d14d
cmp eax, 0x12c
jl 0x45d20b
lea ecx, [ebp - 0x864]
mov byte [ebp - 4], 0x12
call fcn.00403632
lea ecx, [ebp - 0x86c]
call fcn.00403632
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov eax, dword [ebp - 0x840]
cmp dword [ebp - 0x838], eax
jae 0x45d29d
push dword [esi + 0xe4]
push 0x13
call fcn.0045d3ee
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x45d280
mov ecx, dword [esi + 0xe0]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x45d280
mov dword [ebp - 0x830], ebx
jmp 0x45d2ac
cmp dword [ebp - 0x83c], 0
jbe 0x45d22f
mov ecx, dword [esi + 0xe0]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x45d22f
add ebx, dword [ebp - 0x83c]
lea eax, [ebp - 0x8ec]
push eax
push dword [ebp - 0x83c]
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x85c]
call fcn.0040a8cf
mov edx, dword [ebp - 0x838]
mov ecx, dword [esi + 0xe0]
mov eax, dword [ecx]
add edx, ebx
push edx
call dword [eax + 8]
mov eax, dword [esi + 0xe4]
lea ecx, [ebp - 0x83c]
push ecx
push 0x800
lea ecx, [ebp - 0x810]
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x45d1ba
add dword [ebp - 0x838], ebx
mov eax, dword [ebp - 0x838]
cmp eax, dword [ebp - 0x840]
jae 0x45d24f
cmp ebx, 0x3e800
jl 0x45d14d
lea ecx, [ebp - 0x864]
mov byte [ebp - 4], 0x12
call fcn.00403632
lea ecx, [ebp - 0x86c]
call fcn.00403632
mov eax, dword [ebp - 0x840]
cmp dword [ebp - 0x838], eax
jb 0x45cf8a
jmp 0x45d167
mov ecx, dword [esi + 0xe0]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x45d296
mov eax, dword [0x48a100]
jmp 0x45d2a6
mov eax, dword [0x48a104]
jmp 0x45d2a6
mov eax, dword [esi + 0x140]
mov eax, dword [eax + 8]
mov dword [ebp - 0x830], eax
mov eax, dword [esi + 0xe4]
xor ecx, ecx
push ecx
push ecx
push ecx
push eax
call dword [sym.imp.WININET.dll_HttpEndRequestA]
lea ecx, [ebp - 0x85c]
mov byte [ebp - 4], 0xd
call fcn.0040a865
mov eax, dword [esi + 0xe4]
test eax, eax
je 0x45d2e5
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
and dword [esi + 0xe4], 0
cmp dword [ebp - 0x830], 0x130
jne 0x45d306
mov ecx, dword [esi + 0x30]
lea eax, [ebp - 0x8b8]
lea ecx, [ecx + 0xa0]
push eax
call fcn.0041a293
lea ecx, [ebp - 0x8f4]
call fcn.00403632
lea ecx, [ebp - 0x8fc]
call fcn.00403632
lea ecx, [ebp - 0x8d8]
call fcn.00403632
lea ecx, [ebp - 0x8e0]
call fcn.00403632
lea ecx, [ebp - 0x880]
call fcn.00403632
lea ecx, [ebp - 0x888]
call fcn.00403632
lea ecx, [ebp - 0x8c0]
call fcn.00403632
lea ecx, [ebp - 0x8c8]
call fcn.00403632
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8b8]
call fcn.0040e7fe
mov eax, dword [ebp - 0x830]
call fcn.0043cc3e
ret