Function at 0x42a250
Capabilities:
Check http status code
Contain obfuscated stackstrings
Create http request
Get common file path
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5902fa
mov eax, dword fs:[0]
push eax
mov eax, 0x1854
call fcn.00564d50
mov eax, dword [0x602c90]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ebx, edx
lea edx, [ebp - 0x1710]
push edx
mov dword [ebp - 0x16c0], eax
mov dword [ebp - 0x1690], ecx
mov dword [ebp - 0x168c], esi
call fcn.0043eb70
mov dword [ebp - 4], 0
mov eax, dword [ebx]
sub eax, 0x10
push eax
call fcn.00405370
add eax, 0x10
add esp, 4
mov dword [ebp - 0x16a4], eax
push 0x5c232c
lea ecx, [ebp - 0x16a0]
mov byte [ebp - 4], 1
call fcn.00401d80
mov byte [ebp - 4], 2
mov eax, dword [ebx]
mov ecx, dword [eax - 0xc]
test ecx, ecx
js 0x42a3a7
push str..com_
push eax
call fcn.00560268
add esp, 8
test eax, eax
je 0x42a3a7
mov ecx, dword [ebx]
sub eax, ecx
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
je 0x42a3a7
mov eax, dword [ecx - 0xc]
sub eax, edi
sub eax, 4
push eax
lea eax, [ebp - 0x1678]
push eax
mov ecx, ebx
call fcn.00420c60
push eax
lea ecx, [ebp - 0x16a0]
mov byte [ebp - 4], 3
call fcn.00405100
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x1678]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a35f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 4
push edi
lea ecx, [ebp - 0x1678]
push ecx
mov ecx, ebx
call fcn.00429520
push eax
lea ecx, [ebp - 0x16a4]
mov byte [ebp - 4], 4
call fcn.00405100
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x1678]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a3a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5c232c
lea ecx, [ebp - 0x1694]
call fcn.00401d80
mov byte [ebp - 4], 5
mov eax, dword [ebx]
push 0x2f
push eax
call fcn.00560aaf
add esp, 8
test eax, eax
je 0x42a424
mov ecx, dword [ebx]
sub eax, ecx
sar eax, 1
mov edx, eax
cmp edx, 0xffffffff
je 0x42a424
mov eax, dword [ecx - 0xc]
sub eax, edx
dec eax
push eax
lea ecx, [ebp - 0x1678]
push ecx
mov ecx, ebx
call fcn.00420c60
push eax
lea ecx, [ebp - 0x1694]
mov byte [ebp - 4], 6
call fcn.00405100
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1678]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a424
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x670]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
cmp eax, 0x104
ja 0x42b318
test eax, eax
je 0x42b318
lea edx, [ebp - 0x468]
push edx
push 0
push 0x5c232c
lea eax, [ebp - 0x670]
push eax
call dword [sym.imp.KERNEL32.DLL_GetTempFileNameW]
test eax, eax
je 0x42b246
lea ecx, [ebp - 0x468]
push ecx
lea ecx, [ebp - 0x1674]
call fcn.00401d80
push 0x5c6bb4
push 0x5c6bb8
lea ecx, [ebp - 0x1674]
mov byte [ebp - 4], 0xa
call fcn.00404af0
lea edx, [ebp - 0x1694]
push edx
lea eax, [ebp - 0x1674]
push eax
lea ecx, [ebp - 0x1678]
push ecx
call fcn.00420d00
add esp, 0xc
push eax
lea ecx, [ebp - 0x1674]
mov byte [ebp - 4], 0xb
call fcn.00405100
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x1678]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a4ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1674]
add eax, 0xfffffff0
push eax
call fcn.00405370
lea edi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x1678], edi
lea ecx, [ebp - 0x1678]
mov byte [ebp - 4], 0xc
push ecx
mov ecx, dword [ebp - 0x1690]
call fcn.00405100
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0xa
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a53b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1674]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a561
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0
push 0
push 0
push 0
push 0x5c6c1c
call dword [sym.imp.WININET.dll_InternetOpenW]
mov esi, eax
mov dword [ebp - 0x1688], esi
test esi, esi
jne 0x42a65a
push str._Connection_Failed
lea ecx, [ebp - 0x1690]
call fcn.00401d80
mov byte [ebp - 4], 0xe
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x168c]
push eax
call fcn.004052b0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1690]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a5d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x1694]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a5f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x16a0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a61c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x16a4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a642
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x1710]
push ecx
mov dword [ebp - 4], 0xffffffff
call fcn.004075a0
jmp 0x42b433
mov eax, dword [ebx]
mov ecx, dword [eax - 0xc]
push ecx
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x42a670
call fcn.004022b0
push 0
push 0x400100
push 0
push 0
push eax
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov dword [ebp - 0x1678], eax
test eax, eax
jne 0x42a757
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push 0xa
lea edx, [ebp - 0x34]
push edx
push eax
call fcn.00560616
add esp, 0xc
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x1684]
call fcn.00420a50
mov edi, eax
push str._Failed_to_open_URL_Error:
lea ecx, [ebp - 0x1678]
mov byte [ebp - 4], 0xf
call fcn.00401d80
push edi
push eax
lea ecx, [ebp - 0x1690]
push ecx
mov byte [ebp - 4], 0x10
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x11
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x168c]
push eax
call fcn.004052b0
lea ecx, [ebp - 0x1690]
call fcn.004020d0
lea ecx, [ebp - 0x1678]
call fcn.004020d0
lea ecx, [ebp - 0x1684]
call fcn.004020d0
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea ecx, [ebp - 0x1694]
call fcn.004020d0
lea ecx, [ebp - 0x16a0]
call fcn.004020d0
lea ecx, [ebp - 0x16a4]
call fcn.004020d0
lea edx, [ebp - 0x1710]
push edx
mov dword [ebp - 4], 0xffffffff
call fcn.004075a0
jmp 0x42b433
xor edi, edi
push edi
lea ecx, [ebp - 0x16f8]
push ecx
lea edx, [ebp - 0xf8]
push edx
push 5
push eax
mov dword [ebp - 0x16f8], 0x40
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x42a79a
lea edi, [ebp - 0xf8]
lea esi, [ebp - 0x58]
call fcn.0042bc90
mov eax, esi
push eax
call fcn.00560b69
add esp, 4
mov edi, eax
mov eax, dword [ebx]
sub eax, 0x10
push eax
mov dword [ebp - 0x1674], 0
call fcn.00405370
add eax, 0x10
add esp, 4
mov dword [ebp - 0x1684], eax
lea ecx, [ebp - 0x1674]
push ecx
lea ecx, [ebp - 0x1684]
mov byte [ebp - 4], 0x12
call fcn.00447820
lea ecx, [ebp - 0x1684]
mov byte [ebp - 0x1679], al
mov byte [ebp - 4], 5
call fcn.004020d0
cmp byte [ebp - 0x1679], 0
je 0x42a9ee
mov esi, dword [ebp - 0x1674]
cmp esi, edi
jle 0x42a9ee
push 0xa
lea edx, [ebp - 0x160]
push edx
push edi
call fcn.00560616
add esp, 0xc
push 0xa
lea eax, [ebp - 0x78]
push eax
push esi
call fcn.00560616
add esp, 0xc
lea ecx, [ebp - 0x78]
push ecx
lea ecx, [ebp - 0x169c]
call fcn.00420a50
mov edi, eax
push str._api:
lea ecx, [ebp - 0x16a8]
mov byte [ebp - 4], 0x13
call fcn.00401d80
mov dword [ebp - 0x1698], eax
lea edx, [ebp - 0x160]
push edx
lea ecx, [ebp - 0x16c8]
mov byte [ebp - 4], 0x14
call fcn.00420a50
mov dword [ebp - 0x1674], eax
push str._header:
lea ecx, [ebp - 0x16b8]
mov byte [ebp - 4], 0x15
call fcn.00401d80
mov dword [ebp - 0x1684], eax
push str.DownloadFile2___size_mismatch_url:
lea ecx, [ebp - 0x16d4]
mov byte [ebp - 4], 0x16
call fcn.00401d80
push ebx
push eax
lea eax, [ebp - 0x16cc]
push eax
mov byte [ebp - 4], 0x17
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x1684]
push ecx
push eax
lea edx, [ebp - 0x16c4]
push edx
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x1674]
push ecx
push eax
lea edx, [ebp - 0x16bc]
push edx
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x1698]
push ecx
push eax
lea edx, [ebp - 0x16b4]
push edx
call fcn.00420d00
add esp, 0xc
push edi
push eax
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x16d0]
push eax
call fcn.00420d00
add esp, 0xc
mov edi, eax
push str.core
lea ecx, [ebp - 0x16b0]
mov byte [ebp - 4], 0x1c
call fcn.00401d80
mov dword [ebp - 0x1698], eax
push 0x5c29e8
lea ecx, [ebp - 0x16ac]
mov byte [ebp - 4], 0x1d
call fcn.00401d80
mov edx, dword [ebp - 0x16c0]
push 1
push edi
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x1698]
push ecx
push eax
push edx
lea eax, [ebp - 0x1710]
push eax
call fcn.0043f5a0
lea ecx, [ebp - 0x16ac]
call fcn.004020d0
lea ecx, [ebp - 0x16b0]
call fcn.004020d0
lea ecx, [ebp - 0x16d0]
call fcn.004020d0
lea ecx, [ebp - 0x16b4]
call fcn.004020d0
lea ecx, [ebp - 0x16bc]
call fcn.004020d0
lea ecx, [ebp - 0x16c4]
call fcn.004020d0
lea ecx, [ebp - 0x16cc]
call fcn.004020d0
lea ecx, [ebp - 0x16d4]
call fcn.004020d0
lea ecx, [ebp - 0x16b8]
call fcn.004020d0
lea ecx, [ebp - 0x16c8]
call fcn.004020d0
lea ecx, [ebp - 0x16a8]
call fcn.004020d0
lea ecx, [ebp - 0x169c]
mov byte [ebp - 4], 5
call fcn.004020d0
mov edi, esi
mov ecx, dword [ebp - 0x1690]
mov eax, dword [ecx]
push 0x10
push eax
lea edx, [ebp - 0x1860]
push edx
call fcn.0042c240
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0x1808], 0
je 0x42aa1d
lea esi, [ebp - 0x1860]
call fcn.0042c460
mov eax, dword [ebp - 0x1690]
mov eax, dword [eax]
push 0x2a
push eax
lea ecx, [ebp - 0x17b8]
push ecx
call fcn.0042c240
xor esi, esi
mov byte [ebp - 4], 0x20
cmp dword [ebp - 0x1760], esi
je 0x42b067
push esi
mov dword [ebp - 0x1674], esi
call dword [sym.imp.KERNEL32.DLL_SetLastError]
mov ecx, dword [ebp - 0x1678]
lea edx, [ebp - 0x1684]
push edx
push 0x1000
lea eax, [ebp - 0x1670]
push eax
push ecx
mov dword [ebp - 0x1684], esi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x42ab39
mov eax, dword [ebp - 0x1684]
test eax, eax
je 0x42ab39
push 0
push eax
lea edx, [ebp - 0x1670]
push edx
lea eax, [ebp - 0x17b8]
push eax
call fcn.0042bd20
mov ecx, dword [ebp - 0x1674]
add ecx, dword [ebp - 0x1684]
mov eax, dword [ebp - 0x16c0]
cmp dword [eax + 0xc], 0
mov dword [ebp - 0x1674], ecx
je 0x42aaed
mov edx, esi
inc esi
cmp edx, 0x28
jne 0x42aaed
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
push 0x5c232c
push 0
push edi
push ecx
push eax
mov eax, dword [edx + 0x18]
call eax
mov ecx, dword [ebp - 0x1674]
mov eax, dword [ebp - 0x16c0]
xor esi, esi
cmp dword [eax + 0x10], 0
je 0x42ab11
mov edx, esi
inc esi
cmp edx, 0x28
jne 0x42ab11
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
push 0x5c232c
push 0
push edi
push ecx
push eax
mov eax, dword [edx + 0x18]
call eax
xor esi, esi
mov eax, dword [ebp - 0x1678]
lea ecx, [ebp - 0x1684]
push ecx
push 0x1000
lea edx, [ebp - 0x1670]
push edx
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x42aa81
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push 0xa
lea ecx, [ebp - 0xb8]
mov esi, eax
push ecx
push esi
call fcn.00560616
add esp, 0xc
push 0xa
lea edx, [ebp - 0x98]
push edx
push edi
call fcn.005605ec
mov ecx, dword [ebp - 0x1674]
add esp, 0xc
push 0xa
lea eax, [ebp - 0x34]
push eax
push ecx
call fcn.005605ec
add esp, 0xc
test esi, esi
je 0x42ade4
lea edx, [ebp - 0xb8]
push edx
lea ecx, [ebp - 0x1680]
call fcn.00420a50
mov esi, eax
push str._error:
lea ecx, [ebp - 0x16e4]
mov byte [ebp - 4], 0x21
call fcn.00401d80
mov dword [ebp - 0x16d4], eax
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x16ec]
mov byte [ebp - 4], 0x22
call fcn.00420a50
mov dword [ebp - 0x16b8], eax
push str._total:
lea ecx, [ebp - 0x16f0]
mov byte [ebp - 4], 0x23
call fcn.00401d80
mov dword [ebp - 0x16c8], eax
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x16e8]
mov byte [ebp - 4], 0x24
call fcn.00420a50
mov dword [ebp - 0x16a8], eax
push str._received:
lea ecx, [ebp - 0x16dc]
mov byte [ebp - 4], 0x25
call fcn.00401d80
mov dword [ebp - 0x169c], eax
push str.DownloadManager.DownloadFile2___url:
lea ecx, [ebp - 0x16e0]
mov byte [ebp - 4], 0x26
call fcn.00401d80
push ebx
push eax
lea edx, [ebp - 0x16d8]
push edx
mov byte [ebp - 4], 0x27
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x169c]
push ecx
push eax
lea edx, [ebp - 0x1698]
push edx
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x29
mov ecx, dword [ebp - 0x16a8]
push ecx
push eax
lea edx, [ebp - 0x16ac]
push edx
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x16c8]
push ecx
push eax
lea edx, [ebp - 0x16b0]
push edx
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x2b
mov ecx, dword [ebp - 0x16b8]
push ecx
push eax
lea edx, [ebp - 0x16d0]
push edx
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x16d4]
push ecx
push eax
lea edx, [ebp - 0x16b4]
push edx
call fcn.00420d00
add esp, 0xc
push esi
push eax
lea eax, [ebp - 0x16bc]
push eax
mov byte [ebp - 4], 0x2d
call fcn.00420d00
add esp, 0xc
mov esi, eax
push str.core
lea ecx, [ebp - 0x16c4]
mov byte [ebp - 4], 0x2e
call fcn.00401d80
mov dword [ebp - 0x169c], eax
push 0x5c6d84
lea ecx, [ebp - 0x16cc]
mov byte [ebp - 4], 0x2f
call fcn.00401d80
mov edx, dword [ebp - 0x16c0]
push 1
push esi
mov byte [ebp - 4], 0x30
mov ecx, dword [ebp - 0x169c]
push ecx
push eax
push edx
lea eax, [ebp - 0x1710]
push eax
call fcn.0043f5a0
lea ecx, [ebp - 0x16cc]
call fcn.004020d0
lea ecx, [ebp - 0x16c4]
call fcn.004020d0
lea ecx, [ebp - 0x16bc]
call fcn.004020d0
lea ecx, [ebp - 0x16b4]
call fcn.004020d0
lea ecx, [ebp - 0x16d0]
call fcn.004020d0
lea ecx, [ebp - 0x16b0]
call fcn.004020d0
lea ecx, [ebp - 0x16ac]
call fcn.004020d0
lea ecx, [ebp - 0x1698]
call fcn.004020d0
lea ecx, [ebp - 0x16d8]
call fcn.004020d0
lea ecx, [ebp - 0x16e0]
call fcn.004020d0
lea ecx, [ebp - 0x16dc]
call fcn.004020d0
lea ecx, [ebp - 0x16e8]
call fcn.004020d0
lea ecx, [ebp - 0x16f0]
call fcn.004020d0
lea ecx, [ebp - 0x16ec]
call fcn.004020d0
lea ecx, [ebp - 0x16e4]
call fcn.004020d0
lea ecx, [ebp - 0x1680]
mov byte [ebp - 4], 0x20
call fcn.004020d0
lea ecx, [ebp - 0xb8]
push ecx
lea ecx, [ebp - 0x1698]
call fcn.00420a50
mov esi, eax
push str._error:
lea ecx, [ebp - 0x16ac]
mov byte [ebp - 4], 0x31
call fcn.00401d80
mov dword [ebp - 0x16e8], eax
lea edx, [ebp - 0x98]
push edx
lea ecx, [ebp - 0x16b0]
mov byte [ebp - 4], 0x32
call fcn.00420a50
mov dword [ebp - 0x16f0], eax
push str._total:
lea ecx, [ebp - 0x16d0]
mov byte [ebp - 4], 0x33
call fcn.00401d80
mov dword [ebp - 0x16ec], eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x16b4]
mov byte [ebp - 4], 0x34
call fcn.00420a50
mov dword [ebp - 0x16e4], eax
push str._received:
lea ecx, [ebp - 0x16bc]
mov byte [ebp - 4], 0x35
call fcn.00401d80
mov dword [ebp - 0x1680], eax
push str.DownloadManager.DownloadFile2___url:
lea ecx, [ebp - 0x16c4]
mov byte [ebp - 4], 0x36
call fcn.00401d80
push ebx
push eax
lea ecx, [ebp - 0x16cc]
push ecx
mov byte [ebp - 4], 0x37
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x38
mov edx, dword [ebp - 0x1680]
push edx
push eax
lea eax, [ebp - 0x16d4]
push eax
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x16e4]
push ecx
push eax
lea edx, [ebp - 0x16b8]
push edx
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x3a
mov ecx, dword [ebp - 0x16ec]
push ecx
push eax
lea edx, [ebp - 0x16c8]
push edx
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x3b
mov ecx, dword [ebp - 0x16f0]
push ecx
push eax
lea edx, [ebp - 0x16a8]
push edx
call fcn.00420d00
add esp, 0xc
mov byte [ebp - 4], 0x3c
mov ecx, dword [ebp - 0x16e8]
push ecx
push eax
lea edx, [ebp - 0x169c]
push edx
call fcn.00420d00
add esp, 0xc
push esi
push eax
lea eax, [ebp - 0x16d8]
push eax
mov byte [ebp - 4], 0x3d
call fcn.00420d00
add esp, 0xc
mov esi, eax
push str.core
lea ecx, [ebp - 0x16e0]
mov byte [ebp - 4], 0x3e
call fcn.00401d80
mov ebx, eax
push 0x5c6d8c
lea ecx, [ebp - 0x16dc]
mov byte [ebp - 4], 0x3f
call fcn.00401d80
mov ecx, dword [ebp - 0x16c0]
push 9
push esi
push ebx
push eax
push ecx
lea edx, [ebp - 0x1710]
push edx
mov byte [ebp - 4], 0x40
call fcn.0043f5a0
lea ecx, [ebp - 0x16dc]
call fcn.004020d0
lea ecx, [ebp - 0x16e0]
call fcn.004020d0
lea ecx, [ebp - 0x16d8]
call fcn.004020d0
lea ecx, [ebp - 0x169c]
call fcn.004020d0
lea ecx, [ebp - 0x16a8]
call fcn.004020d0
lea ecx, [ebp - 0x16c8]
call fcn.004020d0
lea ecx, [ebp - 0x16b8]
call fcn.004020d0
lea ecx, [ebp - 0x16d4]
call fcn.004020d0
lea ecx, [ebp - 0x16cc]
call fcn.004020d0
lea ecx, [ebp - 0x16c4]
call fcn.004020d0
lea ecx, [ebp - 0x16bc]
call fcn.004020d0
lea ecx, [ebp - 0x16b4]
call fcn.004020d0
lea ecx, [ebp - 0x16d0]
call fcn.004020d0
lea ecx, [ebp - 0x16b0]
call fcn.004020d0
lea ecx, [ebp - 0x16ac]
call fcn.004020d0
lea ecx, [ebp - 0x1698]
mov byte [ebp - 4], 0x20
call fcn.004020d0
lea esi, [ebp - 0x17b8]
call fcn.0042c460
mov bl, 1
cmp dword [ebp - 0x1674], edi
jge 0x42b09e
push str.DownloadFile___file_size_is_less_than_expected.
lea ecx, [ebp - 0x1680]
call fcn.00401d80
mov byte [ebp - 4], 0x41
jmp 0x42b07d
push str._DownloadFile___failed_to_write_to_file.
lea ecx, [ebp - 0x1680]
xor bl, bl
call fcn.00401d80
mov byte [ebp - 4], 0x42
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x168c]
push eax
call fcn.004052b0
lea ecx, [ebp - 0x1680]
mov byte [ebp - 4], 0x20
call fcn.004020d0
mov edx, dword [ebp - 0x1678]
push 0
lea eax, [ebp - 0x16f4]
push eax
lea ecx, [ebp - 0x260]
push ecx
push 0x13
push edx
mov dword [ebp - 0x16f4], 0x100
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x42b164
lea edi, [ebp - 0x260]
lea esi, [ebp - 0x58]
call fcn.0042bc90
mov eax, esi
push eax
call fcn.00560b7f
add esp, 4
cmp eax, 0x194
jne 0x42b107
push str._DownloadFile___failed_404.
lea ecx, [ebp - 0x1680]
xor bl, bl
call fcn.00401d80
mov byte [ebp - 4], 0x43
jmp 0x42b143
cmp eax, 0x1f6
jne 0x42b126
push str._DownloadFile___failed_502.
lea ecx, [ebp - 0x1680]
xor bl, bl
call fcn.00401d80
mov byte [ebp - 4], 0x44
jmp 0x42b143
cmp eax, 0x1f8
jne 0x42b164
push str._DownloadFile___failed_504.
lea ecx, [ebp - 0x1680]
xor bl, bl
call fcn.00401d80
mov byte [ebp - 4], 0x45
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x168c]
push eax
call fcn.004052b0
lea ecx, [ebp - 0x1680]
mov byte [ebp - 4], 0x20
call fcn.004020d0
mov ecx, dword [ebp - 0x1678]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ecx
call esi
mov edx, dword [ebp - 0x1688]
push edx
call esi
push 0x5c232c
lea ecx, [ebp - 0x1688]
call fcn.00401d80
mov byte [ebp - 4], 0x46
mov esi, dword [ebp - 0x1690]
push eax
call fcn.00430020
lea ecx, [ebp - 0x1688]
mov byte [ebp - 0x1679], al
mov byte [ebp - 4], 0x20
call fcn.004020d0
cmp byte [ebp - 0x1679], 0
jne 0x42b1ed
push str._DownloadFile___copy_file_failed.
lea ecx, [ebp - 0x1688]
xor bl, bl
call fcn.00401d80
mov byte [ebp - 4], 0x47
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x168c]
push eax
call fcn.004052b0
lea ecx, [ebp - 0x1688]
call fcn.004020d0
lea eax, [ebp - 0x17b8]
mov byte [ebp - 4], 0x1f
call fcn.0042b460
lea eax, [ebp - 0x1860]
mov byte [ebp - 4], 5
call fcn.0042b460
lea ecx, [ebp - 0x1694]
call fcn.004020d0
lea ecx, [ebp - 0x16a0]
call fcn.004020d0
lea ecx, [ebp - 0x16a4]
call fcn.004020d0
lea eax, [ebp - 0x1710]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.004075a0
mov al, bl
jmp 0x42b435
push str._DownloadFile___failed_to_get_temp_file.
lea ecx, [ebp - 0x1688]
call fcn.00401d80
mov byte [ebp - 4], 0xd
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, esi
call fcn.004052b0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1688]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b28e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x1694]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b2b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x16a0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b2da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x16a4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b300
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x1710]
push ecx
mov dword [ebp - 4], 0xffffffff
call fcn.004075a0
jmp 0x42b433
push str._DownloadFile___failed_to_get_temp_path.
lea ecx, [ebp - 0x1688]
call fcn.00401d80
mov byte [ebp - 4], 7
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, esi
call fcn.004052b0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1688]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42b360
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x1694]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b386
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x16a0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b3ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x16a4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b3d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ebx, [ebp - 0x1708]
mov dword [ebp - 4], 9
call fcn.00421170
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x170c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b40a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1710]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b433
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055f89e
mov esp, ebp
pop ebp
ret 8