Function at 0x422b20
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 0x57feb9
mov eax, dword fs:[0]
push eax
mov eax, 0x1844
call fcn.00556d10
mov eax, dword [0x5ebdb0]
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.00434830
push str.DownloadManager.DownloadFile___start
lea ecx, [ebp - 0x1678]
mov dword [ebp - 4], 0
call fcn.00401d90
push edi
push eax
lea ecx, [ebp - 0x169c]
push ecx
mov byte [ebp - 4], 1
call fcn.0041bac0
add esp, 0xc
mov ebx, eax
push str.core
lea ecx, [ebp - 0x1680]
mov byte [ebp - 4], 2
call fcn.00401d90
mov esi, eax
push 0x5b3ee0
lea ecx, [ebp - 0x167c]
mov byte [ebp - 4], 3
call fcn.00401d90
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.00435800
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 0x422c19
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 0x422c3f
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 0x422c65
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 0x422c8b
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.00405320
add eax, 0x10
add esp, 4
mov dword [ebp - 0x169c], eax
push 0x5b0bc8
lea ecx, [ebp - 0x16ac]
mov byte [ebp - 4], 5
call fcn.00401d90
mov bl, 6
mov byte [ebp - 4], bl
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jl 0x422d81
push str..com_
push eax
call fcn.0055125b
add esp, 8
test eax, eax
je 0x422d81
mov ecx, dword [edi]
sub eax, ecx
sar eax, 1
mov esi, eax
cmp esi, 0xffffffff
je 0x422d81
mov eax, dword [ecx - 0xc]
sub eax, esi
sub eax, 4
push eax
lea ecx, [ebp - 0x167c]
push ecx
mov ecx, edi
call fcn.0041b9a0
push eax
lea ecx, [ebp - 0x16ac]
mov byte [ebp - 4], 7
call fcn.004050b0
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 0x422d3a
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.0041ba20
push eax
lea ecx, [ebp - 0x169c]
mov byte [ebp - 4], 8
call fcn.004050b0
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 0x422d81
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5b0bc8
lea ecx, [ebp - 0x16a8]
call fcn.00401d90
mov byte [ebp - 4], 9
mov eax, dword [edi]
push 0x2f
push eax
call fcn.00551821
add esp, 8
test eax, eax
je 0x422dfe
mov ecx, dword [edi]
sub eax, ecx
sar eax, 1
mov edx, eax
cmp edx, 0xffffffff
je 0x422dfe
mov eax, dword [ecx - 0xc]
sub eax, edx
dec eax
push eax
lea ecx, [ebp - 0x167c]
push ecx
mov ecx, edi
call fcn.0041b9a0
push eax
lea ecx, [ebp - 0x16a8]
mov byte [ebp - 4], 0xa
call fcn.004050b0
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 0x422dfe
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 0x423c58
test eax, eax
je 0x423c58
lea edx, [ebp - 0x670]
push edx
push 0
push 0x5b0bc8
lea eax, [ebp - 0x468]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x423c42
lea ecx, [ebp - 0x670]
push ecx
lea ecx, [ebp - 0x1678]
call fcn.00401d90
push 0x5b3f4c
mov bl, 0xc
push 0x5b3f50
lea ecx, [ebp - 0x1678]
mov byte [ebp - 4], bl
call fcn.00404aa0
lea edx, [ebp - 0x16a8]
push edx
lea eax, [ebp - 0x1678]
push eax
lea ecx, [ebp - 0x167c]
push ecx
call fcn.0041bac0
add esp, 0xc
push eax
lea ecx, [ebp - 0x1678]
mov byte [ebp - 4], 0xd
call fcn.004050b0
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 0x422ec4
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.00405320
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.004050b0
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 0x422f14
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 0x422f3a
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.00401d90
mov ecx, dword [ebp - 0x16bc]
push ecx
push eax
lea edx, [ebp - 0x1678]
push edx
mov byte [ebp - 4], 0x10
call fcn.0041bac0
add esp, 0xc
mov ebx, eax
push str.core
lea ecx, [ebp - 0x1680]
mov byte [ebp - 4], 0x11
call fcn.00401d90
mov esi, eax
push 0x5b3ee0
lea ecx, [ebp - 0x167c]
mov byte [ebp - 4], 0x12
call fcn.00401d90
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.00435800
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 0x422fd6
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 0x422ffc
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 0x423022
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 0x423047
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 0x4230bb
push str._Connection_Failed
lea ecx, [ebp - 0x1684]
call fcn.00401d90
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.00405260
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 0x4230b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
jmp 0x423ca7
mov eax, dword [edi]
mov ecx, dword [eax - 0xc]
push ecx
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x4230d1
call fcn.004022c0
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 0x4231b0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xa
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.0056ee1a
add esp, 0xc
lea edx, [ebp - 0x34]
push edx
lea ecx, [ebp - 0x1680]
call fcn.0041b840
mov esi, eax
push str._Failed_to_open_URL_Error:
lea ecx, [ebp - 0x167c]
mov byte [ebp - 4], 0x15
call fcn.00401d90
push esi
push eax
lea eax, [ebp - 0x1684]
push eax
mov byte [ebp - 4], 0x16
call fcn.0041bac0
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.00405260
lea ecx, [ebp - 0x1684]
call fcn.00401e50
lea ecx, [ebp - 0x167c]
call fcn.00401e50
lea ecx, [ebp - 0x1680]
call fcn.00401e50
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea ecx, [ebp - 0x16a8]
call fcn.00401e50
lea ecx, [ebp - 0x16ac]
call fcn.00401e50
lea ecx, [ebp - 0x169c]
call fcn.00401e50
lea eax, [ebp - 0x1688]
call fcn.00407cf0
jmp 0x423d3e
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 0x4231f9
lea edi, [ebp - 0xf8]
lea esi, [ebp - 0x58]
call fcn.00424560
mov edx, esi
push edx
call fcn.005519b1
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.00405320
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.0043bbb0
lea ecx, [ebp - 0x1680]
mov byte [ebp - 0x1671], al
mov byte [ebp - 4], 9
call fcn.00401e50
cmp byte [ebp - 0x1671], 0
je 0x42344d
mov esi, dword [ebp - 0x1678]
cmp esi, ebx
jle 0x42344d
push 0xa
lea ecx, [ebp - 0x160]
push ecx
push ebx
call fcn.0056ee1a
add esp, 0xc
push 0xa
lea edx, [ebp - 0x78]
push edx
push esi
call fcn.0056ee1a
add esp, 0xc
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x16a0]
call fcn.0041b840
mov ebx, eax
push str._api:
lea ecx, [ebp - 0x16d8]
mov byte [ebp - 4], 0x19
call fcn.00401d90
mov dword [ebp - 0x1680], eax
lea ecx, [ebp - 0x160]
push ecx
lea ecx, [ebp - 0x16b0]
mov byte [ebp - 4], 0x1a
call fcn.0041b840
mov dword [ebp - 0x1684], eax
push str._header:
lea ecx, [ebp - 0x16d0]
mov byte [ebp - 4], 0x1b
call fcn.00401d90
mov dword [ebp - 0x168c], eax
push str.DownloadFile2___size_mismatch_url:
lea ecx, [ebp - 0x16c8]
mov byte [ebp - 4], 0x1c
call fcn.00401d90
push edi
push eax
lea edx, [ebp - 0x16c0]
push edx
mov byte [ebp - 4], 0x1d
call fcn.0041bac0
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.0041bac0
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.0041bac0
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.0041bac0
add esp, 0xc
push ebx
push eax
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x16c4]
push eax
call fcn.0041bac0
add esp, 0xc
mov ebx, eax
push str.core
lea ecx, [ebp - 0x16cc]
mov byte [ebp - 4], 0x22
call fcn.00401d90
mov dword [ebp - 0x168c], eax
push 0x5b1038
lea ecx, [ebp - 0x1678]
mov byte [ebp - 4], 0x23
call fcn.00401d90
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.004351d0
lea ecx, [ebp - 0x1678]
call fcn.00401e50
lea ecx, [ebp - 0x16cc]
call fcn.00401e50
lea ecx, [ebp - 0x16c4]
call fcn.00401e50
lea ecx, [ebp - 0x16b4]
call fcn.00401e50
lea ecx, [ebp - 0x16d4]
call fcn.00401e50
lea ecx, [ebp - 0x16b8]
call fcn.00401e50
lea ecx, [ebp - 0x16c0]
call fcn.00401e50
lea ecx, [ebp - 0x16c8]
call fcn.00401e50
lea ecx, [ebp - 0x16d0]
call fcn.00401e50
lea ecx, [ebp - 0x16b0]
call fcn.00401e50
lea ecx, [ebp - 0x16d8]
call fcn.00401e50
lea ecx, [ebp - 0x16a0]
mov byte [ebp - 4], 9
call fcn.00401e50
mov ebx, esi
mov ecx, dword [ebp - 0x16bc]
mov eax, dword [ecx]
push 0x10
push eax
lea edx, [ebp - 0x1850]
push edx
call fcn.00424b00
mov byte [ebp - 4], 0x25
cmp dword [ebp - 0x17f8], 0
je 0x42347c
lea esi, [ebp - 0x1850]
call fcn.00424d20
mov eax, dword [ebp - 0x16bc]
mov eax, dword [eax]
push 0x2a
push eax
lea ecx, [ebp - 0x17a8]
push ecx
call fcn.00424b00
mov byte [ebp - 4], 0x26
cmp dword [ebp - 0x1750], 0
je 0x423ad0
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 0x42359d
mov eax, dword [ebp - 0x1680]
test eax, eax
je 0x42359d
push 0
push eax
lea edx, [ebp - 0x1670]
push edx
lea eax, [ebp - 0x17a8]
push eax
call fcn.004245f0
mov ecx, dword [ebp - 0x1680]
mov edx, dword [ebp - 0x1694]
add dword [ebp - 0x1678], ecx
cmp dword [edx + 0xc], 0
je 0x423543
mov eax, esi
inc esi
cmp eax, 0x28
jne 0x423543
push 0x5b0bc8
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 0x423575
mov ecx, esi
inc esi
cmp ecx, 0x28
jne 0x423575
push 0x5b0bc8
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 0x4234e1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xa
lea ecx, [ebp - 0xb8]
mov esi, eax
push ecx
push esi
call fcn.0056ee1a
add esp, 0xc
push 0xa
lea edx, [ebp - 0x98]
push edx
push ebx
call fcn.0056edf0
mov ecx, dword [ebp - 0x1678]
add esp, 0xc
push 0xa
lea eax, [ebp - 0x34]
push eax
push ecx
call fcn.0056edf0
add esp, 0xc
test esi, esi
je 0x423848
lea edx, [ebp - 0xb8]
push edx
lea ecx, [ebp - 0x1690]
call fcn.0041b840
mov esi, eax
push 0x5b1ac4
lea ecx, [ebp - 0x16ec]
mov byte [ebp - 4], 0x27
call fcn.00401d90
mov dword [ebp - 0x16c8], eax
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x16e8]
mov byte [ebp - 4], 0x28
call fcn.0041b840
mov dword [ebp - 0x16d0], eax
push str._total:
lea ecx, [ebp - 0x16e4]
mov byte [ebp - 4], 0x29
call fcn.00401d90
mov dword [ebp - 0x16b0], eax
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x16f0]
mov byte [ebp - 4], 0x2a
call fcn.0041b840
mov dword [ebp - 0x16d8], eax
push str._received:
lea ecx, [ebp - 0x16e0]
mov byte [ebp - 4], 0x2b
call fcn.00401d90
mov dword [ebp - 0x16a0], eax
push str.DownloadManager.DownloadFile2___url:
lea ecx, [ebp - 0x16f4]
mov byte [ebp - 4], 0x2c
call fcn.00401d90
push edi
push eax
lea edx, [ebp - 0x16dc]
push edx
mov byte [ebp - 4], 0x2d
call fcn.0041bac0
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.0041bac0
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.0041bac0
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.0041bac0
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.0041bac0
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.0041bac0
add esp, 0xc
push esi
push eax
lea eax, [ebp - 0x16d4]
push eax
mov byte [ebp - 4], 0x33
call fcn.0041bac0
add esp, 0xc
mov esi, eax
push str.core
lea ecx, [ebp - 0x16b8]
mov byte [ebp - 4], 0x34
call fcn.00401d90
mov dword [ebp - 0x16a0], eax
push str.error
lea ecx, [ebp - 0x16c0]
mov byte [ebp - 4], 0x35
call fcn.00401d90
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.004351d0
lea ecx, [ebp - 0x16c0]
call fcn.00401e50
lea ecx, [ebp - 0x16b8]
call fcn.00401e50
lea ecx, [ebp - 0x16d4]
call fcn.00401e50
lea ecx, [ebp - 0x16b4]
call fcn.00401e50
lea ecx, [ebp - 0x16c4]
call fcn.00401e50
lea ecx, [ebp - 0x16cc]
call fcn.00401e50
lea ecx, [ebp - 0x168c]
call fcn.00401e50
lea ecx, [ebp - 0x1684]
call fcn.00401e50
lea ecx, [ebp - 0x16dc]
call fcn.00401e50
lea ecx, [ebp - 0x16f4]
call fcn.00401e50
lea ecx, [ebp - 0x16e0]
call fcn.00401e50
lea ecx, [ebp - 0x16f0]
call fcn.00401e50
lea ecx, [ebp - 0x16e4]
call fcn.00401e50
lea ecx, [ebp - 0x16e8]
call fcn.00401e50
lea ecx, [ebp - 0x16ec]
call fcn.00401e50
lea ecx, [ebp - 0x1690]
mov byte [ebp - 4], 0x26
call fcn.00401e50
lea ecx, [ebp - 0xb8]
push ecx
lea ecx, [ebp - 0x1684]
call fcn.0041b840
mov esi, eax
push 0x5b1ac4
lea ecx, [ebp - 0x168c]
mov byte [ebp - 4], 0x37
call fcn.00401d90
mov dword [ebp - 0x16f0], eax
lea edx, [ebp - 0x98]
push edx
lea ecx, [ebp - 0x16cc]
mov byte [ebp - 4], 0x38
call fcn.0041b840
mov dword [ebp - 0x16e4], eax
push str._total:
lea ecx, [ebp - 0x16c4]
mov byte [ebp - 4], 0x39
call fcn.00401d90
mov dword [ebp - 0x16e8], eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x16b4]
mov byte [ebp - 4], 0x3a
call fcn.0041b840
mov dword [ebp - 0x16ec], eax
push str._received:
lea ecx, [ebp - 0x16d4]
mov byte [ebp - 4], 0x3b
call fcn.00401d90
mov dword [ebp - 0x1690], eax
push str.DownloadManager.DownloadFile2___url:
lea ecx, [ebp - 0x16b8]
mov byte [ebp - 4], 0x3c
call fcn.00401d90
push edi
push eax
lea ecx, [ebp - 0x16c0]
push ecx
mov byte [ebp - 4], 0x3d
call fcn.0041bac0
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.0041bac0
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.0041bac0
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.0041bac0
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.0041bac0
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.0041bac0
add esp, 0xc
push esi
push eax
lea eax, [ebp - 0x16dc]
push eax
mov byte [ebp - 4], 0x43
call fcn.0041bac0
add esp, 0xc
mov esi, eax
push str.core
lea ecx, [ebp - 0x16f4]
mov byte [ebp - 4], 0x44
call fcn.00401d90
mov edi, eax
push str.debug
lea ecx, [ebp - 0x16e0]
mov byte [ebp - 4], 0x45
call fcn.00401d90
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.004351d0
lea ecx, [ebp - 0x16e0]
call fcn.00401e50
lea ecx, [ebp - 0x16f4]
call fcn.00401e50
lea ecx, [ebp - 0x16dc]
call fcn.00401e50
lea ecx, [ebp - 0x16a0]
call fcn.00401e50
lea ecx, [ebp - 0x16d8]
call fcn.00401e50
lea ecx, [ebp - 0x16b0]
call fcn.00401e50
lea ecx, [ebp - 0x16d0]
call fcn.00401e50
lea ecx, [ebp - 0x16c8]
call fcn.00401e50
lea ecx, [ebp - 0x16c0]
call fcn.00401e50
lea ecx, [ebp - 0x16b8]
call fcn.00401e50
lea ecx, [ebp - 0x16d4]
call fcn.00401e50
lea ecx, [ebp - 0x16b4]
call fcn.00401e50
lea ecx, [ebp - 0x16c4]
call fcn.00401e50
lea ecx, [ebp - 0x16cc]
call fcn.00401e50
lea ecx, [ebp - 0x168c]
call fcn.00401e50
lea ecx, [ebp - 0x1684]
mov byte [ebp - 4], 0x26
call fcn.00401e50
lea esi, [ebp - 0x17a8]
call fcn.00424d20
mov byte [ebp - 0x1671], 1
cmp dword [ebp - 0x1678], ebx
jge 0x423b0c
push str.DownloadFile___file_size_is_less_than_expected.
lea ecx, [ebp - 0x1690]
call fcn.00401d90
mov byte [ebp - 4], 0x47
jmp 0x423aeb
push str._DownloadFile___failed_to_write_to_file.
lea ecx, [ebp - 0x1690]
mov byte [ebp - 0x1671], 0
call fcn.00401d90
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.00405260
lea ecx, [ebp - 0x1690]
mov byte [ebp - 4], 0x26
call fcn.00401e50
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 0x423b95
lea edi, [ebp - 0x260]
lea esi, [ebp - 0x58]
call fcn.00424560
mov edx, esi
push edx
call fcn.005519c7
add esp, 4
cmp eax, 0x194
jne 0x423b95
push str._DownloadFile___failed_404.
lea ecx, [ebp - 0x1690]
mov byte [ebp - 0x1671], 0
call fcn.00401d90
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.00405260
lea ecx, [ebp - 0x1690]
mov byte [ebp - 4], 0x26
call fcn.00401e50
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.00427cb0
test al, al
jne 0x423bed
push str._DownloadFile___copy_file_failed.
lea ecx, [ebp - 0x16a4]
mov byte [ebp - 0x1671], al
call fcn.00401d90
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.00405260
lea ecx, [ebp - 0x16a4]
call fcn.00401e50
lea eax, [ebp - 0x17a8]
mov byte [ebp - 4], 0x25
call fcn.00423d60
lea eax, [ebp - 0x1850]
mov byte [ebp - 4], 9
call fcn.00423d60
lea ecx, [ebp - 0x16a8]
call fcn.00401e50
lea ecx, [ebp - 0x16ac]
call fcn.00401e50
lea ecx, [ebp - 0x169c]
call fcn.00401e50
lea eax, [ebp - 0x1688]
call fcn.00407cf0
mov al, byte [ebp - 0x1671]
jmp 0x423d40
push str._DownloadFile___failed_to_get_temp_file.
lea ecx, [ebp - 0x16a4]
call fcn.00401d90
mov byte [ebp - 4], 0xf
jmp 0x423c6c
push str._DownloadFile___failed_to_get_temp_path.
lea ecx, [ebp - 0x16a4]
call fcn.00401d90
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.00405260
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 0x423ca4
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 0x423cc9
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 0x423cef
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 0x423d15
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 0x423d3e
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.00550891
mov esp, ebp
pop ebp
ret 8