Function at 0x405660
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1014
call fcn.00414550
mov eax, dword [0x41e008]
xor eax, esp
mov dword [esp + 0x1010], eax
cmp dword [0x420100], 0
push ebx
push esi
push edi
jne 0x405726
movups xmm0, xmmword [str.There_is_no_version_of_CrypKey_present_to_be_updated.]
mov eax, dword [0x41963c]
mov dword [esp + 0x48], eax
movzx eax, word [0x419640]
mov word [esp + 0x4c], ax
mov eax, dword [0x419654]
movups xmmword [esp + 0x18], xmm0
mov dword [esp + 0x828], eax
movups xmm0, xmmword [0x41961c]
movzx eax, word [0x419658]
mov word [esp + 0x82c], ax
lea eax, [esp + 0x818]
movups xmmword [esp + 0x28], xmm0
push 0x11040
movups xmm0, xmmword [0x41962c]
push eax
lea eax, [esp + 0x20]
movups xmmword [esp + 0x40], xmm0
push eax
movups xmm0, xmmword [str.CrypKey_Not_Installed]
push dword [0x41f8f0]
movups xmmword [esp + 0x828], xmm0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1010]
xor ecx, esp
call fcn.00412814
mov esp, ebp
pop ebp
ret
cmp byte [0x420510], 0
jne 0x405774
cmp byte [0x420d21], 0
je 0x405774
push 1
push 0x405270
push dword [0x41f8f0]
push 0x41965c
push dword [0x41f8f8]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
test eax, eax
jne 0x405774
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1010]
xor ecx, esp
call fcn.00412814
mov esp, ebp
pop ebp
ret
xor ecx, ecx
call fcn.00408aa0
call fcn.00403a20
test al, al
je 0x405794
cmp byte [0x420510], 0
jne 0x405794
xor cl, cl
call fcn.00402980
mov ecx, dword [0x41f8f4]
call fcn.0040e0c0
mov ecx, eax
mov dword [esp + 0xc], eax
call fcn.004092d0
mov ebx, eax
test ebx, ebx
je 0x405826
mov ecx, ebx
call fcn.00409990
mov ecx, dword [0x41f8f4]
mov edi, eax
mov edx, edi
call fcn.0040a560
mov dword [esp + 0x10], eax
test eax, eax
je 0x405819
mov edx, 0x418eec
mov ecx, eax
call fcn.0040a560
mov ecx, eax
call fcn.00409730
mov ecx, dword [esp + 0x10]
mov edx, str.Setup
mov esi, eax
call fcn.0040a560
mov ecx, eax
call fcn.00409730
test esi, esi
je 0x405819
test eax, eax
je 0x405819
mov ecx, edi
call fcn.00403c50
mov ecx, edi
test al, al
je 0x405814
call fcn.00406070
jmp 0x405819
call fcn.00406480
mov ecx, ebx
call fcn.00409310
mov ebx, eax
test ebx, ebx
jne 0x4057b0
mov ecx, dword [esp + 0xc]
call fcn.00409420
mov ecx, 0x41fd00
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405837
sub ecx, edx
je 0x4058b9
xor ecx, ecx
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ecx + 0x41fd00]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x417], al
test al, al
jne 0x405850
push str.setupex.exe
lea eax, [esp + 0x41c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea eax, [esp + 0x418]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4058b9
mov ecx, 0x41fd00
call fcn.00405fb0
xor ecx, ecx
nop word [eax + eax]
mov al, byte [esp + ecx + 0x418]
lea ecx, [ecx + 1]
mov byte [ecx + 0x42091f], al
test al, al
jne 0x4058a0
jmp 0x405976
mov ecx, dword [0x41f8f4]
call fcn.0040e0c0
mov ecx, eax
mov dword [esp + 0x10], eax
call fcn.004092d0
mov ebx, eax
test ebx, ebx
je 0x40596d
nop dword [eax]
mov ecx, ebx
call fcn.00409990
mov ecx, dword [0x41f8f4]
mov edi, eax
mov edx, edi
call fcn.0040a560
mov dword [esp + 0xc], eax
test eax, eax
je 0x405930
mov edx, 0x418eec
mov ecx, eax
call fcn.0040a560
mov ecx, eax
call fcn.00409730
mov ecx, dword [esp + 0xc]
mov edx, str.Setup
mov esi, eax
call fcn.0040a560
mov ecx, eax
call fcn.00409730
test esi, esi
je 0x405930
test eax, eax
jne 0x40593f
mov ecx, ebx
call fcn.00409310
mov ebx, eax
test ebx, ebx
jne 0x4058e0
jmp 0x40596d
mov ecx, edi
call fcn.00405fb0
mov ecx, 0x420920
sub ecx, edi
nop dword [eax]
mov al, byte [edi]
lea edi, [edi + 1]
mov byte [ecx + edi - 1], al
test al, al
jne 0x405950
push str.setupex.exe
push 0x420920
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
mov ecx, dword [esp + 0x10]
call fcn.00409420
cmp byte [0x420510], 0
jne 0x4059fe
mov ecx, 0x420920
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405987
sub ecx, edx
je 0x4059f7
push 0x420920
lea eax, [esp + 0x41c]
push str._s__s
push eax
call fcn.004010e0
add esp, 0xc
xor ecx, ecx
nop
mov al, byte [ecx + 0x420920]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0xc17], al
test al, al
jne 0x4059b0
lea eax, [esp + 0xc18]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
push 1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xc20]
push eax
lea edx, [esp + 0x424]
call fcn.004013b0
add esp, 0xc
mov byte [0x41e8ed], 1
mov cl, 1
call fcn.00402980
call fcn.00408ad0
mov ecx, dword [esp + 0x101c]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00412814
mov esp, ebp
pop ebp
ret