Function at 0x412200
Capabilities:
Check if file exists
Get file version info

Disassembly:
push 0xffffffffffffffff
push 0x46986f
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x481b08]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push esi
push edi
mov eax, dword [0x481b08]
xor eax, esp
push eax
lea eax, [esp + 0xb4]
mov dword fs:[0], eax
mov eax, dword [0x46c738]
movq xmm0, qword [str._d._d._d._d]
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x1c], 0
movq qword [esp + 0x68], xmm0
call fcn.004120f0
add esp, 4
cmp dword [esp + 0x30], 8
lea eax, [esp + 0x1c]
cmovae eax, dword [esp + 0x1c]
push eax
mov dword [esp + 0xc0], 0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41230f
call fcn.00413330
push 0x1f
push str.INFO:_Installer_not_downloaded_
lea ecx, [esp + 0x3c]
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 0
mov byte [esp + 0x3c], 0
call fcn.00401950
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0xc0], 1
call fcn.00413450
add esp, 4
cmp dword [esp + 0x48], 0x10
mov byte [esp + 0xbc], 0
jb 0x4122eb
push dword [esp + 0x34]
call fcn.00449096
add esp, 4
push 0
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
push 0x46b630
mov ecx, esi
mov byte [esi], 0
call fcn.00401950
jmp 0x4124e1
cmp dword [esp + 0x30], 8
lea eax, [esp + 0x1c]
cmovae eax, dword [esp + 0x1c]
push 0
push eax
push 1
call sub.VERSION.dll_GetFileVersionInfoSizeExW
mov ebx, eax
test ebx, ebx
jne 0x412375
call fcn.00413330
push str.ERROR:_Util::getDownloadedVersion__:_Failed_to_get_the_file_version_
lea ecx, [esp + 0x38]
call fcn.00401000
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0xc0], 2
call fcn.004133a0
add esp, 4
cmp dword [esp + 0x48], 0x10
mov byte [esp + 0xbc], bl
jb 0x4124d5
push dword [esp + 0x34]
call fcn.00449096
jmp 0x4124d2
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004485e4
add esp, 4
cmp dword [esp + 0x30], 8
mov edi, eax
push edi
push ebx
lea ecx, [esp + 0x24]
cmovae ecx, dword [esp + 0x24]
push 0
push ecx
push 1
call sub.VERSION.dll_GetFileVersionInfoExW
test eax, eax
jne 0x4123ce
call fcn.00413330
push str.ERROR:_Util::getDownloadedVersion__:_Failed_to_get_the_file_version_
lea ecx, [esp + 0x38]
call fcn.00401000
mov byte [esp + 0xbc], 3
jmp 0x4124a4
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
push 0x46c7a8
push edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x412489
cmp dword [esp + 0x10], 0
je 0x412489
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], 0
mov byte [esp + 0x4c], 0
mov ecx, dword [esp + 0x14]
mov byte [esp + 0xbc], 5
movzx eax, word [ecx + 0xc]
push eax
movzx eax, word [ecx + 0xe]
push eax
movzx eax, word [ecx + 8]
push eax
movzx eax, word [ecx + 0xa]
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x84]
push 0x40
push eax
call fcn.0044ab18
add esp, 0x1c
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x50]
call fcn.00404bb0
push edi
call fcn.0044ac9e
add esp, 4
lea eax, [esp + 0x4c]
push eax
mov ecx, esi
call fcn.00402d50
lea ecx, [esp + 0x4c]
call fcn.004010b0
lea ecx, [esp + 0x1c]
call fcn.00414640
jmp 0x4124f4
call fcn.00413330
push str.ERROR:_Util::getDownloadedVersion__:_Failed_to_get_the_file_version_
lea ecx, [esp + 0x38]
call fcn.00401000
mov byte [esp + 0xbc], 4
lea eax, [esp + 0x34]
push eax
call fcn.004133a0
add esp, 4
cmp dword [esp + 0x48], 0x10
mov byte [esp + 0xbc], 0
jb 0x4124cc
push dword [esp + 0x34]
call fcn.00449096
add esp, 4
push edi
call fcn.0044ac9e
add esp, 4
push 0x46b630
mov ecx, esi
call fcn.00401000
cmp dword [esp + 0x30], 8
jb 0x4124f4
push dword [esp + 0x1c]
call fcn.00449096
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0xb4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.00449824
add esp, 0xb0
ret