Function at 0x4224b0
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 0x57ea89
mov eax, dword fs:[0]
push eax
mov eax, 0x1844
call fcn.00555af0
mov eax, dword [0x5e9db0]
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 edi, dword [ebp + 0xc]
mov dword [ebp - 0x1694], eax
lea eax, [ebp - 0x1688]
push eax
mov dword [ebp - 0x168c], edi
mov dword [ebp - 0x16bc], ecx
mov dword [ebp - 0x1698], edx
call fcn.00434070
push str.DownloadManager.DownloadFile___start
lea ecx, [ebp - 0x1678]
mov dword [ebp - 4], 0
call fcn.00401d50
push edi
push eax
lea ecx, [ebp - 0x169c]
push ecx
mov byte [ebp - 4], 1
call fcn.0041ba90
add esp, 0xc
mov ebx, eax
push str.core
lea ecx, [ebp - 0x1680]
mov byte [ebp - 4], 2
call fcn.00401d50
mov esi, eax
push 0x5b2ea8
lea ecx, [ebp - 0x167c]
mov byte [ebp - 4], 3
call fcn.00401d50
mov edx, dword [ebp - 0x1694]
push ebx
push esi
push eax
push edx
lea eax, [ebp - 0x1688]
push eax
mov ebx, 9
mov byte [ebp - 4], 4
call fcn.00435040
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x167c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4225a9
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 - 0x1680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4225cf
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 - 0x169c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4225f5
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 - 0x1678]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42261b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi]
sub eax, 0x10
push eax
call fcn.004052f0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x169c], eax
push 0x5afbc8
lea ecx, [ebp - 0x16ac]
mov byte [ebp - 4], 5
call fcn.00401d50
mov bl, 6
mov byte [ebp - 4], bl
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jl 0x422711
push str..com_
push eax
call fcn.005500f6
add esp, 8
test eax, eax
je 0x422711
mov ecx, dword [edi]
sub eax, ecx
sar eax, 1
mov esi, eax
cmp esi, 0xffffffff
je 0x422711
mov eax, dword [ecx - 0xc]
sub eax, esi
sub eax, 4
push eax
lea ecx, [ebp - 0x167c]
push ecx
mov ecx, edi
call fcn.0041b970
push eax
lea ecx, [ebp - 0x16ac]
mov byte [ebp - 4], 7
call fcn.00405080
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x167c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4226ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 4
push esi
lea ecx, [ebp - 0x167c]
push ecx
mov ecx, edi
call fcn.0041b9f0
push eax
lea ecx, [ebp - 0x169c]
mov byte [ebp - 4], 8
call fcn.00405080
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x167c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x422711
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5afbc8
lea ecx, [ebp - 0x16a8]
call fcn.00401d50
mov byte [ebp - 4], 9
mov eax, dword [edi]
push 0x2f
push eax
call fcn.005506bc
add esp, 8
test eax, eax
je 0x42278e
mov ecx, dword [edi]
sub eax, ecx
sar eax, 1
mov edx, eax
cmp edx, 0xffffffff
je 0x42278e
mov eax, dword [ecx - 0xc]
sub eax, edx
dec eax
push eax
lea ecx, [ebp - 0x167c]
push ecx
mov ecx, edi
call fcn.0041b970
push eax
lea ecx, [ebp - 0x16a8]
mov byte [ebp - 4], 0xa
call fcn.00405080
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x167c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42278e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x468]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, 0x104
ja 0x4235e8
test eax, eax
je 0x4235e8
lea edx, [ebp - 0x670]
push edx
push 0
push 0x5afbc8
lea eax, [ebp - 0x468]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x4235d2
lea ecx, [ebp - 0x670]
push ecx
lea ecx, [ebp - 0x1678]
call fcn.00401d50
push 0x5b2f14
mov bl, 0xc
push 0x5b2f18
lea ecx, [ebp - 0x1678]
mov byte [ebp - 4], bl
call fcn.00404a70
lea edx, [ebp - 0x16a8]
push edx
lea eax, [ebp - 0x1678]
push eax
lea ecx, [ebp - 0x167c]
push ecx
call fcn.0041ba90
add esp, 0xc
push eax
lea ecx, [ebp - 0x1678]
mov byte [ebp - 4], 0xd
call fcn.00405080
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x167c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x422854
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1678]
add eax, 0xfffffff0
push eax
call fcn.004052f0
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x167c], esi
lea ecx, [ebp - 0x167c]
push ecx
mov ecx, dword [ebp - 0x16bc]
mov byte [ebp - 4], 0xe
call fcn.00405080
lea eax, [esi - 0x10]
mov byte [ebp - 4], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4228a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
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 0x4228ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.DownloadManager.DownloadFile_file
lea ecx, [ebp - 0x1684]
call fcn.00401d50
mov ecx, dword [ebp - 0x16bc]
push ecx
push eax
lea edx, [ebp - 0x1678]
push edx
mov byte [ebp - 4], 0x10
call fcn.0041ba90
add esp, 0xc
mov ebx, eax
push str.core
lea ecx, [ebp - 0x1680]
mov byte [ebp - 4], 0x11
call fcn.00401d50
mov esi, eax
push 0x5b2ea8
lea ecx, [ebp - 0x167c]
mov byte [ebp - 4], 0x12
call fcn.00401d50
push ebx
push esi
push eax
mov eax, dword [ebp - 0x1694]
push eax
lea ecx, [ebp - 0x1688]
push ecx
mov ebx, 9
mov byte [ebp - 4], 0x13
call fcn.00435040
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x167c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x422966
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x1680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42298c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x10
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 0x4229b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x1684]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4229d7
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 str.AirInstaller
call dword [sym.imp.WININET.dll_InternetOpenW]
mov ebx, eax
mov dword [ebp - 0x16a4], ebx
test ebx, ebx
jne 0x422a4b
push str._Connection_Failed
lea ecx, [ebp - 0x1684]
call fcn.00401d50
mov byte [ebp - 4], 0x14
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x1698]
push eax
call fcn.00405230
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x1684]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x422a42
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
jmp 0x423637
mov eax, dword [edi]
mov ecx, dword [eax - 0xc]
push ecx
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x422a61
call fcn.00402290
push 0
push 0x400100
push 0
push 0
push eax
push ebx
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov dword [ebp - 0x167c], eax
test eax, eax
jne 0x422b40
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xa
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.0056db4e
add esp, 0xc
lea edx, [ebp - 0x34]
push edx
lea ecx, [ebp - 0x1680]
call fcn.0041b810
mov esi, eax
push str._Failed_to_open_URL_Error:
lea ecx, [ebp - 0x167c]
mov byte [ebp - 4], 0x15
call fcn.00401d50
push esi
push eax
lea eax, [ebp - 0x1684]
push eax
mov byte [ebp - 4], 0x16
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x17
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x1698]
push eax
call fcn.00405230
lea ecx, [ebp - 0x1684]
call fcn.00401e10
lea ecx, [ebp - 0x167c]
call fcn.00401e10
lea ecx, [ebp - 0x1680]
call fcn.00401e10
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea ecx, [ebp - 0x16a8]
call fcn.00401e10
lea ecx, [ebp - 0x16ac]
call fcn.00401e10
lea ecx, [ebp - 0x169c]
call fcn.00401e10
lea eax, [ebp - 0x1688]
call fcn.004219d0
jmp 0x4236ce
xor ebx, ebx
push ebx
lea edx, [ebp - 0x16fc]
push edx
lea ecx, [ebp - 0xf8]
push ecx
push 5
push eax
mov dword [ebp - 0x16fc], 0x40
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x422b89
lea edi, [ebp - 0xf8]
lea esi, [ebp - 0x58]
call fcn.0045a5f0
mov edx, esi
push edx
call fcn.0055084c
mov edi, dword [ebp - 0x168c]
add esp, 4
mov ebx, eax
mov eax, dword [edi]
sub eax, 0x10
push eax
mov dword [ebp - 0x1678], 0
call fcn.004052f0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x1680], eax
lea eax, [ebp - 0x1678]
push eax
lea ecx, [ebp - 0x1680]
mov byte [ebp - 4], 0x18
call fcn.0043b3f0
lea ecx, [ebp - 0x1680]
mov byte [ebp - 0x1671], al
mov byte [ebp - 4], 9
call fcn.00401e10
cmp byte [ebp - 0x1671], 0
je 0x422ddd
mov esi, dword [ebp - 0x1678]
cmp esi, ebx
jle 0x422ddd
push 0xa
lea ecx, [ebp - 0x160]
push ecx
push ebx
call fcn.0056db4e
add esp, 0xc
push 0xa
lea edx, [ebp - 0x78]
push edx
push esi
call fcn.0056db4e
add esp, 0xc
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x16a0]
call fcn.0041b810
mov ebx, eax
push str._api:
lea ecx, [ebp - 0x16d8]
mov byte [ebp - 4], 0x19
call fcn.00401d50
mov dword [ebp - 0x1680], eax
lea ecx, [ebp - 0x160]
push ecx
lea ecx, [ebp - 0x16b0]
mov byte [ebp - 4], 0x1a
call fcn.0041b810
mov dword [ebp - 0x1684], eax
push str._header:
lea ecx, [ebp - 0x16d0]
mov byte [ebp - 4], 0x1b
call fcn.00401d50
mov dword [ebp - 0x168c], eax
push str.DownloadFile2___size_mismatch_url:
lea ecx, [ebp - 0x16c8]
mov byte [ebp - 4], 0x1c
call fcn.00401d50
push edi
push eax
lea edx, [ebp - 0x16c0]
push edx
mov byte [ebp - 4], 0x1d
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x168c]
push ecx
push eax
lea edx, [ebp - 0x16b8]
push edx
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x1684]
push ecx
push eax
lea edx, [ebp - 0x16d4]
push edx
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x1680]
push ecx
push eax
lea edx, [ebp - 0x16b4]
push edx
call fcn.0041ba90
add esp, 0xc
push ebx
push eax
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x16c4]
push eax
call fcn.0041ba90
add esp, 0xc
mov ebx, eax
push str.core
lea ecx, [ebp - 0x16cc]
mov byte [ebp - 4], 0x22
call fcn.00401d50
mov dword [ebp - 0x168c], eax
push 0x5b0038
lea ecx, [ebp - 0x1678]
mov byte [ebp - 4], 0x23
call fcn.00401d50
mov edx, dword [ebp - 0x1694]
push 1
push ebx
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x168c]
push ecx
push eax
push edx
lea eax, [ebp - 0x1688]
push eax
call fcn.00434a10
lea ecx, [ebp - 0x1678]
call fcn.00401e10
lea ecx, [ebp - 0x16cc]
call fcn.00401e10
lea ecx, [ebp - 0x16c4]
call fcn.00401e10
lea ecx, [ebp - 0x16b4]
call fcn.00401e10
lea ecx, [ebp - 0x16d4]
call fcn.00401e10
lea ecx, [ebp - 0x16b8]
call fcn.00401e10
lea ecx, [ebp - 0x16c0]
call fcn.00401e10
lea ecx, [ebp - 0x16c8]
call fcn.00401e10
lea ecx, [ebp - 0x16d0]
call fcn.00401e10
lea ecx, [ebp - 0x16b0]
call fcn.00401e10
lea ecx, [ebp - 0x16d8]
call fcn.00401e10
lea ecx, [ebp - 0x16a0]
mov byte [ebp - 4], 9
call fcn.00401e10
mov ebx, esi
mov ecx, dword [ebp - 0x16bc]
mov eax, dword [ecx]
push 0x10
push eax
lea edx, [ebp - 0x1850]
push edx
call fcn.00424470
mov byte [ebp - 4], 0x25
cmp dword [ebp - 0x17f8], 0
je 0x422e0c
lea esi, [ebp - 0x1850]
call fcn.00424690
mov eax, dword [ebp - 0x16bc]
mov eax, dword [eax]
push 0x2a
push eax
lea ecx, [ebp - 0x17a8]
push ecx
call fcn.00424470
mov byte [ebp - 4], 0x26
cmp dword [ebp - 0x1750], 0
je 0x423460
xor esi, esi
push esi
mov dword [ebp - 0x1678], esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp - 0x167c]
lea edx, [ebp - 0x1680]
push edx
push 0x1000
lea eax, [ebp - 0x1670]
push eax
push ecx
mov dword [ebp - 0x1680], esi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x422f2d
mov eax, dword [ebp - 0x1680]
test eax, eax
je 0x422f2d
push 0
push eax
lea edx, [ebp - 0x1670]
push edx
lea eax, [ebp - 0x17a8]
push eax
call fcn.00423f50
mov ecx, dword [ebp - 0x1680]
mov edx, dword [ebp - 0x1694]
add dword [ebp - 0x1678], ecx
cmp dword [edx + 0xc], 0
je 0x422ed3
mov eax, esi
inc esi
cmp eax, 0x28
jne 0x422ed3
push 0x5afbc8
mov ecx, edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x1678]
mov edx, dword [eax]
mov edx, dword [edx + 0x18]
push 0
push ebx
push ecx
push eax
call edx
xor esi, esi
mov eax, dword [ebp - 0x1694]
cmp dword [eax + 0x10], 0
je 0x422f05
mov ecx, esi
inc esi
cmp ecx, 0x28
jne 0x422f05
push 0x5afbc8
mov edx, eax
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x1678]
mov ecx, dword [eax]
push 0
push ebx
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
xor esi, esi
mov eax, dword [ebp - 0x167c]
lea ecx, [ebp - 0x1680]
push ecx
push 0x1000
lea edx, [ebp - 0x1670]
push edx
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x422e71
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xa
lea ecx, [ebp - 0xb8]
mov esi, eax
push ecx
push esi
call fcn.0056db4e
add esp, 0xc
push 0xa
lea edx, [ebp - 0x98]
push edx
push ebx
call fcn.0056db24
mov ecx, dword [ebp - 0x1678]
add esp, 0xc
push 0xa
lea eax, [ebp - 0x34]
push eax
push ecx
call fcn.0056db24
add esp, 0xc
test esi, esi
je 0x4231d8
lea edx, [ebp - 0xb8]
push edx
lea ecx, [ebp - 0x1690]
call fcn.0041b810
mov esi, eax
push 0x5b0ac4
lea ecx, [ebp - 0x16ec]
mov byte [ebp - 4], 0x27
call fcn.00401d50
mov dword [ebp - 0x16c8], eax
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x16e8]
mov byte [ebp - 4], 0x28
call fcn.0041b810
mov dword [ebp - 0x16d0], eax
push str._total:
lea ecx, [ebp - 0x16e4]
mov byte [ebp - 4], 0x29
call fcn.00401d50
mov dword [ebp - 0x16b0], eax
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x16f0]
mov byte [ebp - 4], 0x2a
call fcn.0041b810
mov dword [ebp - 0x16d8], eax
push str._received:
lea ecx, [ebp - 0x16e0]
mov byte [ebp - 4], 0x2b
call fcn.00401d50
mov dword [ebp - 0x16a0], eax
push str.DownloadManager.DownloadFile2___url:
lea ecx, [ebp - 0x16f4]
mov byte [ebp - 4], 0x2c
call fcn.00401d50
push edi
push eax
lea edx, [ebp - 0x16dc]
push edx
mov byte [ebp - 4], 0x2d
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x16a0]
push ecx
push eax
lea edx, [ebp - 0x1684]
push edx
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x2f
mov ecx, dword [ebp - 0x16d8]
push ecx
push eax
lea edx, [ebp - 0x168c]
push edx
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x30
mov ecx, dword [ebp - 0x16b0]
push ecx
push eax
lea edx, [ebp - 0x16cc]
push edx
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp - 0x16d0]
push ecx
push eax
lea edx, [ebp - 0x16c4]
push edx
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x32
mov ecx, dword [ebp - 0x16c8]
push ecx
push eax
lea edx, [ebp - 0x16b4]
push edx
call fcn.0041ba90
add esp, 0xc
push esi
push eax
lea eax, [ebp - 0x16d4]
push eax
mov byte [ebp - 4], 0x33
call fcn.0041ba90
add esp, 0xc
mov esi, eax
push str.core
lea ecx, [ebp - 0x16b8]
mov byte [ebp - 4], 0x34
call fcn.00401d50
mov dword [ebp - 0x16a0], eax
push str.error
lea ecx, [ebp - 0x16c0]
mov byte [ebp - 4], 0x35
call fcn.00401d50
mov edx, dword [ebp - 0x1694]
push 1
push esi
mov byte [ebp - 4], 0x36
mov ecx, dword [ebp - 0x16a0]
push ecx
push eax
push edx
lea eax, [ebp - 0x1688]
push eax
call fcn.00434a10
lea ecx, [ebp - 0x16c0]
call fcn.00401e10
lea ecx, [ebp - 0x16b8]
call fcn.00401e10
lea ecx, [ebp - 0x16d4]
call fcn.00401e10
lea ecx, [ebp - 0x16b4]
call fcn.00401e10
lea ecx, [ebp - 0x16c4]
call fcn.00401e10
lea ecx, [ebp - 0x16cc]
call fcn.00401e10
lea ecx, [ebp - 0x168c]
call fcn.00401e10
lea ecx, [ebp - 0x1684]
call fcn.00401e10
lea ecx, [ebp - 0x16dc]
call fcn.00401e10
lea ecx, [ebp - 0x16f4]
call fcn.00401e10
lea ecx, [ebp - 0x16e0]
call fcn.00401e10
lea ecx, [ebp - 0x16f0]
call fcn.00401e10
lea ecx, [ebp - 0x16e4]
call fcn.00401e10
lea ecx, [ebp - 0x16e8]
call fcn.00401e10
lea ecx, [ebp - 0x16ec]
call fcn.00401e10
lea ecx, [ebp - 0x1690]
mov byte [ebp - 4], 0x26
call fcn.00401e10
lea ecx, [ebp - 0xb8]
push ecx
lea ecx, [ebp - 0x1684]
call fcn.0041b810
mov esi, eax
push 0x5b0ac4
lea ecx, [ebp - 0x168c]
mov byte [ebp - 4], 0x37
call fcn.00401d50
mov dword [ebp - 0x16f0], eax
lea edx, [ebp - 0x98]
push edx
lea ecx, [ebp - 0x16cc]
mov byte [ebp - 4], 0x38
call fcn.0041b810
mov dword [ebp - 0x16e4], eax
push str._total:
lea ecx, [ebp - 0x16c4]
mov byte [ebp - 4], 0x39
call fcn.00401d50
mov dword [ebp - 0x16e8], eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x16b4]
mov byte [ebp - 4], 0x3a
call fcn.0041b810
mov dword [ebp - 0x16ec], eax
push str._received:
lea ecx, [ebp - 0x16d4]
mov byte [ebp - 4], 0x3b
call fcn.00401d50
mov dword [ebp - 0x1690], eax
push str.DownloadManager.DownloadFile2___url:
lea ecx, [ebp - 0x16b8]
mov byte [ebp - 4], 0x3c
call fcn.00401d50
push edi
push eax
lea ecx, [ebp - 0x16c0]
push ecx
mov byte [ebp - 4], 0x3d
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x3e
mov edx, dword [ebp - 0x1690]
push edx
push eax
lea eax, [ebp - 0x16c8]
push eax
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebp - 0x16ec]
push ecx
push eax
lea edx, [ebp - 0x16d0]
push edx
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x40
mov ecx, dword [ebp - 0x16e8]
push ecx
push eax
lea edx, [ebp - 0x16b0]
push edx
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x41
mov ecx, dword [ebp - 0x16e4]
push ecx
push eax
lea edx, [ebp - 0x16d8]
push edx
call fcn.0041ba90
add esp, 0xc
mov byte [ebp - 4], 0x42
mov ecx, dword [ebp - 0x16f0]
push ecx
push eax
lea edx, [ebp - 0x16a0]
push edx
call fcn.0041ba90
add esp, 0xc
push esi
push eax
lea eax, [ebp - 0x16dc]
push eax
mov byte [ebp - 4], 0x43
call fcn.0041ba90
add esp, 0xc
mov esi, eax
push str.core
lea ecx, [ebp - 0x16f4]
mov byte [ebp - 4], 0x44
call fcn.00401d50
mov edi, eax
push str.debug
lea ecx, [ebp - 0x16e0]
mov byte [ebp - 4], 0x45
call fcn.00401d50
mov ecx, dword [ebp - 0x1694]
push 9
push esi
push edi
push eax
push ecx
lea edx, [ebp - 0x1688]
push edx
mov byte [ebp - 4], 0x46
call fcn.00434a10
lea ecx, [ebp - 0x16e0]
call fcn.00401e10
lea ecx, [ebp - 0x16f4]
call fcn.00401e10
lea ecx, [ebp - 0x16dc]
call fcn.00401e10
lea ecx, [ebp - 0x16a0]
call fcn.00401e10
lea ecx, [ebp - 0x16d8]
call fcn.00401e10
lea ecx, [ebp - 0x16b0]
call fcn.00401e10
lea ecx, [ebp - 0x16d0]
call fcn.00401e10
lea ecx, [ebp - 0x16c8]
call fcn.00401e10
lea ecx, [ebp - 0x16c0]
call fcn.00401e10
lea ecx, [ebp - 0x16b8]
call fcn.00401e10
lea ecx, [ebp - 0x16d4]
call fcn.00401e10
lea ecx, [ebp - 0x16b4]
call fcn.00401e10
lea ecx, [ebp - 0x16c4]
call fcn.00401e10
lea ecx, [ebp - 0x16cc]
call fcn.00401e10
lea ecx, [ebp - 0x168c]
call fcn.00401e10
lea ecx, [ebp - 0x1684]
mov byte [ebp - 4], 0x26
call fcn.00401e10
lea esi, [ebp - 0x17a8]
call fcn.00424690
mov byte [ebp - 0x1671], 1
cmp dword [ebp - 0x1678], ebx
jge 0x42349c
push str.DownloadFile___file_size_is_less_than_expected.
lea ecx, [ebp - 0x1690]
call fcn.00401d50
mov byte [ebp - 4], 0x47
jmp 0x42347b
push str._DownloadFile___failed_to_write_to_file.
lea ecx, [ebp - 0x1690]
mov byte [ebp - 0x1671], 0
call fcn.00401d50
mov byte [ebp - 4], 0x48
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x1698]
push eax
call fcn.00405230
lea ecx, [ebp - 0x1690]
mov byte [ebp - 4], 0x26
call fcn.00401e10
mov ebx, dword [ebp - 0x167c]
push 0
lea eax, [ebp - 0x16f8]
push eax
lea ecx, [ebp - 0x260]
push ecx
push 0x13
push ebx
mov dword [ebp - 0x16f8], 0x100
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x423525
lea edi, [ebp - 0x260]
lea esi, [ebp - 0x58]
call fcn.0045a5f0
mov edx, esi
push edx
call fcn.00550862
add esp, 4
cmp eax, 0x194
jne 0x423525
push str._DownloadFile___failed_404.
lea ecx, [ebp - 0x1690]
mov byte [ebp - 0x1671], 0
call fcn.00401d50
mov byte [ebp - 4], 0x49
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x1698]
push eax
call fcn.00405230
lea ecx, [ebp - 0x1690]
mov byte [ebp - 4], 0x26
call fcn.00401e10
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
mov eax, dword [ebp - 0x16a4]
push eax
call esi
mov esi, dword [ebp - 0x16bc]
call fcn.00427650
test al, al
jne 0x42357d
push str._DownloadFile___copy_file_failed.
lea ecx, [ebp - 0x16a4]
mov byte [ebp - 0x1671], al
call fcn.00401d50
mov byte [ebp - 4], 0x4a
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x1698]
push eax
call fcn.00405230
lea ecx, [ebp - 0x16a4]
call fcn.00401e10
lea eax, [ebp - 0x17a8]
mov byte [ebp - 4], 0x25
call fcn.004236f0
lea eax, [ebp - 0x1850]
mov byte [ebp - 4], 9
call fcn.004236f0
lea ecx, [ebp - 0x16a8]
call fcn.00401e10
lea ecx, [ebp - 0x16ac]
call fcn.00401e10
lea ecx, [ebp - 0x169c]
call fcn.00401e10
lea eax, [ebp - 0x1688]
call fcn.004219d0
mov al, byte [ebp - 0x1671]
jmp 0x4236d0
push str._DownloadFile___failed_to_get_temp_file.
lea ecx, [ebp - 0x16a4]
call fcn.00401d50
mov byte [ebp - 4], 0xf
jmp 0x4235fc
push str._DownloadFile___failed_to_get_temp_path.
lea ecx, [ebp - 0x16a4]
call fcn.00401d50
mov byte [ebp - 4], 0xb
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebp - 0x1698]
push eax
call fcn.00405230
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x16a4]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x423634
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x16a8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x423659
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 - 0x16ac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42367f
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 - 0x169c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4236a5
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 - 0x1688]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4236ce
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.0054f72c
mov esp, ebp
pop ebp
ret 8