Function at 0x4020fc
Capabilities:
Get common file path
Parse url

Disassembly:
mov eax, 0x40eac7
call sub.MSVCRT.dll__EH_prolog
mov eax, 0x1190
call fcn.0040e840
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
lea edi, [esi + 8]
mov ecx, edi
call fcn.0040805a
push eax
mov ecx, edi
call fcn.00408045
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0040a2c0
xor ebx, ebx
push ebx
call fcn.00408fae
push 1
lea eax, [ebp + 8]
pop edi
mov dword [ebp - 0x14], ebx
push eax
push 0x413284
push ebx
mov dword [ebp + 8], edi
call fcn.00408d14
lea eax, [ebp - 0x14]
push eax
push 0x413294
push ebx
call fcn.00408d14
add esp, 0x34
cmp dword [ebp + 8], ebx
je 0x402185
cmp dword [ebp - 0x14], ebx
je 0x402185
push ebx
push 0x4132a4
push ebx
call fcn.0040909b
add esp, 0xc
cmp dword [ebp + 8], edi
jne 0x4022ba
mov dword [ebp + 0x10], edi
call fcn.00409b13
mov dword [esi + 0x50], edi
cmp dword [esi + 0x268], ebx
mov dword [ebp - 0x10], eax
je 0x4021a7
mov dword [esi + 0x58], ebx
mov ecx, dword [esi + 8]
lea eax, [esi + 8]
push eax
call dword [ecx + 0x28]
test eax, eax
je 0x4022b3
push ebx
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4022b3
cmp dword [ebp + 0x10], ebx
je 0x4021f2
push 0x4132b4
call fcn.0040c50a
lea eax, [esi + 8]
pop ecx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov ecx, 0x80070204
cmp eax, ecx
je 0x402267
mov dword [ebp + 0x10], ebx
jmp 0x4021a7
lea ecx, [ebp - 0x119c]
mov dword [esi + 0x4c], ebx
call fcn.0040e053
push dword [ebp + 0x18]
lea ecx, [ebp - 0x119c]
mov dword [ebp - 4], ebx
push dword [ebp + 0x14]
call fcn.004044ea
lea eax, [ebp - 0x119c]
push eax
lea eax, [ebp - 0x1194]
push eax
push 0x415b90
call fcn.00403e9c
mov eax, dword [0x415b98]
push ebx
push 0x4071b9
push ebx
push 0x96
push eax
call fcn.00403ed6
cmp eax, edi
mov dword [esi + 0x4c], edi
je 0x40227e
mov ecx, dword [esi + 8]
lea eax, [esi + 8]
push eax
call dword [ecx + 0x34]
cmp eax, 0x80070204
je 0x40229b
or dword [ebp - 4], 0xffffffff
mov dword [ebp + 0x10], ebx
jmp 0x4021a7
mov esi, ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.0040a2c0
add esp, 0x18
mov eax, esi
jmp 0x402464
push dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x4132b8
mov dword [esi + 0x50], ebx
call fcn.0040c891
pop ecx
jmp 0x4022ba
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.0040a2c0
add esp, 0x18
mov eax, 0x80070204
jmp 0x402464
mov esi, 0x80004005
jmp 0x402269
push ebx
push 0x4132bc
push ebx
call fcn.00408ff9
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0xc
push dword [ebp + 0xc]
call edi
cmp eax, 4
jle 0x4022fe
push 0x4132cc
push dword [ebp + 0xc]
call edi
mov edi, dword [ebp + 0xc]
lea eax, [eax + edi - 4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4022fe
mov eax, dword [esi]
push ebx
push edi
jmp 0x402459
push 0xf
xor eax, eax
pop ecx
lea edi, [ebp - 0x50]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xc50]
mov dword [ebp - 0x50], 0x3c
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x50]
push eax
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x20], 0x400
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
cmp eax, ebx
je 0x402395
lea eax, [ebp - 0x450]
push ebx
push eax
push ebx
lea eax, [ebp - 0xc50]
push ebx
push eax
call dword [sym.imp.MSVCRT.dll__splitpath]
lea eax, [ebp - 0xc50]
push 1
push eax
call fcn.004020c5
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x850]
push str._s__x
push eax
call edi
lea eax, [ebp - 0x850]
push 0x4132dc
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 0x34
test eax, eax
je 0x4023b1
push 1
push dword [ebp + 0xc]
call fcn.004020c5
push eax
lea eax, [ebp - 0x850]
push str.jupdate__x
push eax
call edi
add esp, 0x14
lea eax, [ebp - 0x450]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0x450]
push eax
call edi
lea eax, [ebp - 0x450]
push str..exe
push eax
call edi
call fcn.00409329
cmp eax, ebx
je 0x402416
push str.Using_Async_download
call fcn.0040b771
pop ecx
mov eax, dword [esi]
lea ecx, [ebp - 0x450]
push ecx
push dword [ebp + 0xc]
push esi
call dword [eax + 0x14]
cmp eax, ebx
jge 0x402464
cmp eax, 0x80070200
jne 0x402464
push str.Using_Sync_download
call fcn.0040b771
pop ecx
mov eax, dword [esi]
push 1
lea ecx, [ebp - 0x450]
push 1
push ecx
push dword [ebp + 0xc]
push esi
call dword [eax + 0x1c]
test eax, eax
jl 0x40245f
lea eax, [ebp - 0x450]
push eax
push 0x413320
push ebx
call fcn.00408ff9
mov eax, dword [esi]
add esp, 0xc
lea ecx, [ebp - 0x450]
push 1
push ecx
push esi
call dword [eax + 0x24]
jmp 0x402464
mov eax, 0x80004005
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x14