Function at 0x406520
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x808
mov eax, dword [0x41e008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov bl, 1
nop dword [eax + eax]
push 0
push 0x4049d0
push dword [0x41f8f0]
push 0x419a28
push dword [0x41f8f8]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
test eax, eax
je 0x4067c7
mov ecx, dword [0x41f8f4]
mov edx, 0x41fd00
call fcn.0040a560
test eax, eax
jne 0x40679c
call fcn.00409680
mov esi, eax
test esi, esi
je 0x4065f9
push 0
push 2
push 0x418eec
push esi
call fcn.0040a2c0
push 0
push 2
push str.Seutp
push esi
call fcn.0040a2c0
push 0x41fd00
push 1
push str.Directory
push esi
call fcn.0040a2c0
mov eax, dword [0x41f8f4]
add esp, 0x30
test eax, eax
jne 0x4065cf
call fcn.00409680
mov dword [0x41f8f4], eax
push esi
push 0x40
push 0x41fd00
push eax
call fcn.0040a2c0
add esp, 0x10
mov ecx, esi
call fcn.00409420
mov ecx, dword [0x41f8f4]
mov edx, 0x41fd00
call fcn.0040a560
mov esi, eax
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [ecx + 0x41fd00]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x405], al
test al, al
jne 0x406600
push str.cks.exe
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov edi, eax
xor edx, edx
nop word [eax + eax]
mov cl, byte [edx + 0x41fd00]
lea edx, [edx + 1]
mov byte [ebp + edx - 0x405], cl
test cl, cl
jne 0x406640
push str.setupex.exe
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test edi, edi
je 0x406797
test eax, eax
je 0x406797
test esi, esi
je 0x406699
push 1
push 2
push str.Setup
push esi
call fcn.0040a2c0
add esp, 0x10
mov ecx, 0x41fd00
call fcn.00403c50
test al, al
je 0x40678d
test bl, bl
je 0x4066f5
cmp byte [0x420510], 0
jne 0x4066f5
cmp byte [0x420d21], 0
je 0x4066e7
push 1
push 0x405270
push dword [0x41f8f0]
push 0x41965c
push dword [0x41f8f8]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
test eax, eax
je 0x4067c7
xor ecx, ecx
call fcn.00408aa0
xor cl, cl
call fcn.00402980
mov ecx, 0x41fd00
call fcn.00406070
call fcn.00403a20
test al, al
je 0x406712
mov ecx, 0x41fd00
call fcn.00405fb0
test bl, bl
je 0x406784
cmp byte [0x420510], 0
jne 0x406784
lea eax, [ebp - 0x404]
xor bl, bl
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x406784
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x804]
push str._s__s
push eax
call fcn.004010e0
push 1
lea eax, [ebp - 0x808]
push eax
push 0x41fd00
lea edx, [ebp - 0x804]
call fcn.004013b0
add esp, 0x18
xor eax, eax
nop dword [eax + eax]
mov cl, byte [ebp + eax - 0x404]
lea eax, [eax + 1]
mov byte [eax + 0x42091f], cl
test cl, cl
jne 0x406770
mov byte [0x41e8ed], 1
jmp 0x406797
mov ecx, 0x41fd00
call fcn.00406480
call fcn.00408ad0
push 0x11004
push str.Update_Complete
push str.Update_is_complete._n_nDo_you_want_to_update_another_location_
push dword [0x41f8f0]
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
je 0x406540
mov cl, 1
call fcn.00402980
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00412814
mov esp, ebp
pop ebp
ret