Function at 0x406e62
Capabilities:
Check if file exists

Disassembly:
push 0x104
mov eax, 0x46a715
call fcn.0042dbd7
lea ecx, [ebp - 0x10]
call fcn.0040699e
mov eax, dword [ebp + 0x10]
mov bl, 1
push dword [ebp + 8]
and dword [ebp - 4], 0
push str.Entering_dependencyCheck___s__...__
and dword [eax], 0
lea eax, [ebp - 0x10]
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x10]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x406eb0
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov eax, dword [ebp - 0x10]
mov edi, 0x493f4c
push eax
mov ecx, edi
call fcn.0040c5a7
push 0x200
call fcn.00432c26
mov esi, eax
mov dword [esp], 0x200
mov dword [ebp - 0x34], esi
call fcn.00432c26
mov dword [esp], 0x200
push esi
push str.master.ini
mov dword [ebp - 0x30], eax
call fcn.00422008
add esp, 0xc
test al, al
je 0x4074b7
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4074b7
mov edi, dword [ebp - 0x30]
push 0x200
push edi
push str.depend.ini
call fcn.00422008
add esp, 0xc
test al, al
je 0x4074a9
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4074a9
push str.PRODUCTS
push esi
lea ecx, [ebp - 0x58]
call fcn.0040bd00
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
xor edi, edi
call fcn.0040c28b
test eax, eax
je 0x4072fa
push dword [ebp + 8]
lea ecx, [ebp - 0x58]
push edi
call fcn.0040c236
push eax
lea eax, [ebp - 0x10]
push str.Check:_Does__s_depend_on__s_
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x10]
add esp, 0x10
cmp dword [eax - 4], 1
jle 0x406f8d
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov eax, dword [ebp - 0x10]
push eax
mov ecx, 0x493f4c
call fcn.0040c5a7
push edi
lea ecx, [ebp - 0x58]
call fcn.0040c236
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00406922
mov ecx, dword [ebp + 0xc]
push dword [eax + 8]
call fcn.00406975
test al, al
jne 0x4072e9
push 0x200
call fcn.00432c26
mov esi, eax
mov dword [esp], 0x200
push esi
push dword [ebp - 0x34]
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x2c], esi
push edi
call fcn.0040c264
push eax
call fcn.0042209e
add esp, 0x10
test al, al
je 0x407444
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x407444
push str.VERSIONS
push esi
lea ecx, [ebp - 0xc4]
call fcn.0040bd00
push edi
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 2
call fcn.0040c236
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x7c]
call fcn.0040bd00
and dword [ebp - 0x28], 0
lea eax, [ebp - 0x28]
and dword [ebp - 0x24], 0
push eax
mov byte [ebp - 4], 3
call fcn.00406823
pop ecx
mov dword [ebp - 0x28], eax
xor esi, esi
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x14], esi
call fcn.0040c28b
test eax, eax
je 0x407146
push esi
lea ecx, [ebp - 0x7c]
call fcn.0040c236
push eax
lea ecx, [ebp - 0xc4]
call fcn.0040c1cd
test eax, eax
je 0x407132
push esi
lea ecx, [ebp - 0x7c]
call fcn.0040c264
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x110]
call fcn.0040bd00
push dword [ebp + 8]
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 5
call fcn.0040c1cd
test eax, eax
je 0x407123
push esi
lea ecx, [ebp - 0x7c]
call fcn.0040c236
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x28]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.0040683a
push esi
lea ecx, [ebp - 0x7c]
call fcn.0040c236
push edi
lea ecx, [ebp - 0x58]
mov esi, eax
call fcn.0040c236
push dword [ebp + 8]
push esi
push eax
lea eax, [ebp - 0x10]
push str._s_version__s_depends_on__s
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x10]
add esp, 0x14
cmp dword [eax - 4], 1
jle 0x407115
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov eax, dword [ebp - 0x10]
push eax
mov ecx, 0x493f4c
call fcn.0040c5a7
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 4
call fcn.0040c0a1
inc esi
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x14], esi
call fcn.0040c28b
cmp esi, eax
jb 0x40706a
mov esi, dword [ebp - 0x2c]
lea ecx, [ebp - 0xa0]
push str.FILES
push esi
call fcn.0040bd00
and dword [ebp - 0x20], 0
lea eax, [ebp - 0x20]
and dword [ebp - 0x1c], 0
push eax
mov byte [ebp - 4], 6
call fcn.00406823
pop ecx
mov dword [ebp - 0x20], eax
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 7
call fcn.0040c28b
test eax, eax
je 0x40727d
mov ecx, dword [ebp - 0x18]
push ecx
lea ecx, [ebp - 0xa0]
call fcn.0040c236
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x28]
lea eax, [ebp - 0x14]
push eax
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00406922
lea ecx, [ebp - 0x28]
push dword [eax + 8]
call fcn.00406975
test al, al
je 0x407264
push 0x200
call fcn.00432c26
mov dword [ebp - 0x14], eax
pop ecx
test eax, eax
je 0x407303
push dword [ebp - 0x18]
lea ecx, [ebp - 0xa0]
call fcn.0040c264
push 0x200
push dword [ebp - 0x14]
push esi
push eax
call fcn.0042209e
add esp, 0x10
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0x20]
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.0040683a
push dword [ebp - 0x18]
lea ecx, [ebp - 0xa0]
call fcn.0040c236
push edi
lea ecx, [ebp - 0x58]
mov esi, eax
call fcn.0040c236
push dword [ebp - 0x14]
push esi
push eax
lea eax, [ebp - 0x10]
push str._s_version__s_detection_found_in__s
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x10]
add esp, 0x14
cmp dword [eax - 4], 1
jle 0x407256
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov eax, dword [ebp - 0x10]
push eax
mov ecx, 0x493f4c
call fcn.0040c5a7
mov esi, dword [ebp - 0x2c]
inc dword [ebp - 0x18]
lea ecx, [ebp - 0xa0]
call fcn.0040c28b
mov ecx, dword [ebp - 0x18]
cmp ecx, eax
jb 0x407191
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x4072aa
push dword [eax + 0x10]
call fcn.0040752c
pop ecx
test al, al
jne 0x407376
lea ecx, [ebp - 0x2c]
call fcn.00406a5d
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x20]
jne 0x407289
push esi
call fcn.00432c0b
pop ecx
lea eax, [ebp - 0x20]
push eax
mov ecx, eax
call fcn.004068cc
lea ecx, [ebp - 0xa0]
call fcn.0040c0a1
lea eax, [ebp - 0x28]
push eax
mov ecx, eax
call fcn.004068cc
lea ecx, [ebp - 0x7c]
call fcn.0040c0a1
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 1
call fcn.0040c0a1
lea ecx, [ebp - 0x58]
inc edi
call fcn.0040c28b
cmp edi, eax
jb 0x406f58
mov byte [ebp - 4], 0
jmp 0x407432
push 6
mov edi, 0x493f4c
push str.productVersionIniFullPath
mov ecx, edi
call fcn.0040c5b8
mov ecx, dword [ebp - 0x20]
xor bl, bl
mov eax, dword [ecx]
mov dword [ebp + 0x10], eax
cmp eax, ecx
je 0x40733d
push dword [eax + 0x10]
call fcn.00432c0b
pop ecx
lea ecx, [ebp + 0x10]
call fcn.00406a5d
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x20]
jne 0x407324
lea eax, [ebp - 0x20]
push eax
mov ecx, eax
call fcn.004068cc
lea ecx, [ebp - 0xa0]
call fcn.0040c0a1
lea eax, [ebp - 0x28]
push eax
mov ecx, eax
call fcn.004068cc
lea ecx, [ebp - 0x7c]
call fcn.0040c0a1
lea ecx, [ebp - 0xc4]
call fcn.0040c0a1
jmp 0x40749c
push dword [ebp + 8]
lea ecx, [ebp - 0x58]
push edi
call fcn.0040c236
push eax
lea eax, [ebp - 0x10]
push str.Product__s_depends_on_the_product__s_which_is_to_be_removed.
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x10]
add esp, 0x10
cmp dword [eax - 4], 1
jle 0x4073ab
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov eax, dword [ebp - 0x10]
push 1
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
push edi
lea ecx, [ebp - 0x58]
call fcn.0040c236
push eax
call fcn.00432bb7
mov ecx, dword [ebp + 0x10]
xor bl, bl
push esi
mov dword [ecx], eax
call fcn.00432c0b
pop ecx
pop ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov dword [ebp + 0x10], eax
cmp eax, ecx
je 0x4073fb
push dword [eax + 0x10]
call fcn.00432c0b
pop ecx
lea ecx, [ebp + 0x10]
call fcn.00406a5d
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x20]
jne 0x4073e2
lea eax, [ebp - 0x20]
push eax
mov ecx, eax
call fcn.004068cc
lea ecx, [ebp - 0xa0]
call fcn.0040c0a1
lea eax, [ebp - 0x28]
push eax
mov ecx, eax
call fcn.004068cc
lea ecx, [ebp - 0x7c]
call fcn.0040c0a1
lea ecx, [ebp - 0xc4]
call fcn.0040c0a1
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x58]
call fcn.0040c0a1
mov edi, 0x493f4c
jmp 0x4074d5
push edi
lea ecx, [ebp - 0x58]
call fcn.0040c236
push eax
lea eax, [ebp - 0x10]
push str.Could_not_open_product_version_ini_for__s
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x10]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x407476
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov eax, dword [ebp - 0x10]
push 5
mov edi, 0x493f4c
push eax
mov ecx, edi
call fcn.0040c5b8
push 3
push str.Running_dependency_check_failed.
mov ecx, edi
call fcn.0040c5b8
push esi
xor bl, bl
call fcn.00432c0b
pop ecx
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], bl
call fcn.0040c0a1
jmp 0x4074d5
push 5
push str.Could_not_open__depend.ini_
mov edi, 0x493f4c
jmp 0x4074be
push 5
push str.Could_not_open__master.ini_
mov ecx, edi
call fcn.0040c5b8
push 3
push str.Running_dependency_check_failed.
mov ecx, edi
call fcn.0040c5b8
xor bl, bl
push dword [ebp - 0x34]
call fcn.00432c0b
push dword [ebp - 0x30]
call fcn.00432c0b
movzx eax, bl
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x10]
push str.Exiting_dependencyCheck___s__...__.__Returning__d
push eax
call fcn.00406b1a
mov esi, dword [ebp - 0x10]
add esp, 0x18
cmp dword [esi - 4], 1
jle 0x407514
push dword [esi - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov esi, dword [ebp - 0x10]
push esi
mov ecx, edi
call fcn.0040c5a7
lea ecx, [esi - 0x10]
call fcn.00406c57
mov al, bl
call fcn.0042dba0
ret