Function at 0x4239a1
Capabilities:
Check if file exists

Disassembly:
push 0xa0
mov eax, 0x46c5a8
call fcn.0042dc0b
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x30]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x48], eax
call fcn.0040699e
xor ebx, ebx
mov byte [ebp - 0x29], 1
lea eax, [ebp - 0x64]
mov dword [ebp - 0x38], ebx
push eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
call fcn.0042173f
pop ecx
mov dword [ebp - 0x64], eax
mov eax, ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x54], eax
cmp byte [ebp + 0x10], 1
mov edi, 0x493f4c
mov byte [ebp - 4], 2
mov byte [0x494198], bl
jne 0x423ccc
push 0x478088
push esi
call fcn.004390d0
pop ecx
pop ecx
test eax, eax
jne 0x423a74
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov edi, 0x20219
mov byte [ebp - 4], 3
push edi
push str.SOFTWAREInternet_Content_Filter
mov esi, reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x44]
push esi
call fcn.0040dd83
test eax, eax
jne 0x423a51
push 1
push str.Family_Protection_product_found._Customize_Uninstallation_enabled.
jmp 0x423ca8
push edi
push str.SOFTWARESafe_Family
push esi
lea ecx, [ebp - 0x44]
call fcn.0040dd83
test eax, eax
jne 0x423cb9
push 1
push str.Family_Safety_product_found._Customize_Uninsttalation_enabled.
jmp 0x423ca8
push 0x47814c
push esi
call fcn.004390d0
pop ecx
pop ecx
test eax, eax
jne 0x423b0e
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
push 0x20219
push str.SOFTWARESafe_Family
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.0040dd83
test eax, eax
jne 0x423cb9
push str.AppCount
push str.SOFTWAREMcAfeeCSP_
call fcn.004219dc
pop ecx
pop ecx
push 1
push str.Family_Safety_product_found._Customize_Uninsttalation_enabled.
mov ecx, edi
mov esi, eax
call fcn.0040c5b8
cmp esi, 1
jle 0x423cb9
push 1
push str.dwValue_is_greater_than_1
mov ecx, edi
call fcn.0040c5b8
cmp dword [ebp - 0x44], 0
mov al, 1
mov byte [ebp - 0x29], al
mov byte [ebp - 4], 2
je 0x423f86
push dword [ebp - 0x44]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x423f83
push 0x478190
push esi
call fcn.004390d0
pop ecx
pop ecx
test eax, eax
jne 0x423c2a
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov edi, 0x20219
mov byte [ebp - 4], 5
push edi
push str.SOFTWARETrueKey
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x44]
call fcn.0040dd83
test eax, eax
jne 0x423b66
push 1
push str.Successfully_accessed_TRUEKEY_KEY_READ__KEY_WOW64_32KEY_registry
mov ecx, 0x493f4c
call fcn.0040c5b8
mov byte [0x494198], 1
jmp 0x423bba
lea ecx, [ebp - 0x34]
call fcn.0040699e
mov byte [ebp - 4], 6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x34]
push str.Error_TRUEKEY_KEY_READ__KEY_WOW64_32KEY___d
push eax
call fcn.00406b1a
mov esi, dword [ebp - 0x34]
add esp, 0xc
cmp dword [esi - 4], 1
jle 0x423ba1
push dword [esi - 0xc]
lea ecx, [ebp - 0x34]
call fcn.00406aae
mov esi, dword [ebp - 0x34]
push 5
push esi
mov ecx, 0x493f4c
call fcn.0040c5b8
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 5
call fcn.00406c57
push edi
push str.SOFTWARESafe_Family
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x44]
call fcn.0040dd83
test eax, eax
je 0x423ca1
lea ecx, [ebp - 0x34]
call fcn.0040699e
mov byte [ebp - 4], 7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x34]
push str.Error_REG_FAMILYSAFETY_KEY_READ__KEY_WOW64_32KEY___d
push eax
call fcn.00406b1a
mov esi, dword [ebp - 0x34]
add esp, 0xc
cmp dword [esi - 4], 1
jle 0x423c10
push dword [esi - 0xc]
lea ecx, [ebp - 0x34]
call fcn.00406aae
mov esi, dword [ebp - 0x34]
push 5
push esi
mov ecx, 0x493f4c
call fcn.0040c5b8
lea ecx, [esi - 0x10]
call fcn.00406c57
jmp 0x423cb9
push str.RESIDUE
push esi
call fcn.004390d0
pop ecx
pop ecx
test eax, eax
jne 0x423c6e
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 4], 8
mov edi, 0x20219
lea ecx, [ebp - 0x44]
push edi
push str.SOFTWARETrueKey
mov esi, reloc.OLEAUT32.dll_SysReAllocString
push esi
call fcn.0040dd83
test eax, eax
jne 0x423c8e
push 1
push str.Successfully_accessed_TRUEKEY_KEY_READ__KEY_WOW64_32KEY_registry
jmp 0x423ca8
push str.MSAD
push esi
call fcn.004390d0
pop ecx
pop ecx
test eax, eax
jne 0x423ccc
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 4], 9
jmp 0x423c48
push edi
push str.SOFTWARESafe_Family
push esi
lea ecx, [ebp - 0x44]
call fcn.0040dd83
test eax, eax
jne 0x423cb9
push 1
push str.Successfully_accessed_REG_FAMILYSAFETY_KEY_READ__KEY_WOW64_32KEY_registry
mov ecx, 0x493f4c
call fcn.0040c5b8
mov byte [0x494198], 1
cmp dword [ebp - 0x44], 0
mov byte [ebp - 4], 2
je 0x423ccc
push dword [ebp - 0x44]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [ebp - 0x48]
lea eax, [ebp - 0x30]
mov esi, dword [ebp - 0x50]
push edi
push esi
push str.Entering_uninstallProduct___s___s__
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x30]
add esp, 0x10
cmp dword [eax - 4], 1
jle 0x423cfc
push dword [eax - 0xc]
lea ecx, [ebp - 0x30]
call fcn.00406aae
mov eax, dword [ebp - 0x30]
push eax
mov ecx, 0x493f4c
call fcn.0040c5a7
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x423d88
push edi
lea eax, [ebp - 0x30]
push str.Could_not_locate_ini_file___s_
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x30]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x423d3b
push dword [eax - 0xc]
lea ecx, [ebp - 0x30]
call fcn.00406aae
mov eax, dword [ebp - 0x30]
push 5
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
push esi
lea eax, [ebp - 0x30]
push str.Could_not_uninstall_product__s.
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x30]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x423d71
push dword [eax - 0xc]
lea ecx, [ebp - 0x30]
call fcn.00406aae
mov eax, dword [ebp - 0x30]
push 3
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
mov al, bl
mov byte [ebp - 0x29], al
jmp 0x423f89
push str.VERSIONS
push edi
lea ecx, [ebp - 0xac]
call fcn.0040bd00
push str.FILES
push edi
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xa
call fcn.0040bd00
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xb
mov edi, ebx
call fcn.0040c28b
test eax, eax
je 0x423f3c
push edi
lea ecx, [ebp - 0x88]
call fcn.0040c236
push eax
lea ecx, [ebp - 0xac]
call fcn.0040c1cd
test eax, eax
je 0x423f22
push edi
lea ecx, [ebp - 0x88]
call fcn.0040c264
mov dword [ebp - 0x38], eax
test eax, eax
jne 0x423e43
push dword [ebp - 0x48]
lea ecx, [ebp - 0x88]
mov byte [ebp - 0x29], bl
push edi
call fcn.0040c236
push eax
push esi
lea eax, [ebp - 0x30]
push str.Malformed_INI:_Could_not_determine_ini_file_for_product__s_version__s_using___s_
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x30]
add esp, 0x14
cmp dword [eax - 4], 1
jle 0x423e36
push dword [eax - 0xc]
lea ecx, [ebp - 0x30]
call fcn.00406aae
mov eax, dword [ebp - 0x30]
push 5
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
push 0x200
call fcn.00432c26
mov esi, eax
pop ecx
test esi, esi
je 0x42403d
push 0x200
push esi
push dword [ebp - 0x48]
push dword [ebp - 0x38]
call fcn.0042209e
mov ecx, esi
mov dword [ebp - 0x18], ebx
add esp, 0x10
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x423e7e
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00404230
push esi
mov byte [ebp - 4], 0xc
call fcn.00432c0b
pop ecx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x64]
call fcn.00421756
cmp byte [ebp - 0x3c], 0
je 0x423ee4
mov esi, dword [ebp - 0x58]
lea eax, [ebp - 0x28]
push eax
cmp esi, dword [ebp - 0x4c]
je 0x423ed5
mov ecx, esi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
call fcn.0040b5b1
push 0x18
pop eax
add esi, eax
mov dword [ebp - 0x58], esi
jmp 0x423ee4
push esi
lea ecx, [ebp - 0x5c]
call fcn.00407b71
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0xb
cmp eax, 0x10
jb 0x423f1f
mov ecx, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], ecx
cmp eax, 0x1000
jb 0x423f16
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00401311
mov eax, dword [ebp - 0x34]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x38]
push eax
push ecx
call fcn.0042d727
pop ecx
pop ecx
mov esi, dword [ebp - 0x50]
lea ecx, [ebp - 0x88]
inc edi
call fcn.0040c28b
cmp edi, eax
jb 0x423dc7
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x38], ebx
mov edi, dword [ebp - 0x58]
mov esi, ebx
cmp esi, edi
je 0x423f69
push 0x18
pop ebx
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x423f52
mov eax, dword [esi]
push dword [ebp + 0x10]
push eax
call fcn.00424076
and byte [ebp - 0x29], al
add esi, ebx
pop ecx
pop ecx
cmp esi, edi
jne 0x423f48
mov ebx, dword [ebp - 0x38]
lea ecx, [ebp - 0x88]
call fcn.0040c0a1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 2
call fcn.0040c0a1
mov al, byte [ebp - 0x29]
mov edi, dword [ebp - 0x48]
movzx eax, al
push eax
push edi
push dword [ebp - 0x50]
lea eax, [ebp - 0x30]
push str.Exiting_uninstallProduct___s___s____returning__d
push eax
call fcn.00406b1a
mov esi, dword [ebp - 0x30]
add esp, 0x14
cmp dword [esi - 4], 1
jle 0x423fb9
push dword [esi - 0xc]
lea ecx, [ebp - 0x30]
call fcn.00406aae
mov esi, dword [ebp - 0x30]
push esi
mov ecx, 0x493f4c
call fcn.0040c5a7
test ebx, ebx
je 0x424021
mov edi, ebx
cmp edi, dword [ebp - 0x58]
je 0x423fe8
mov esi, dword [ebp - 0x58]
push 0x18
pop ebx
mov ecx, edi
call fcn.004043a0
add edi, ebx
cmp edi, esi
jne 0x423fd5
mov esi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x4c]
sub eax, ebx
mov dword [ebp - 0x38], ebx
push 0x18
cdq
pop ecx
idiv ecx
imul eax, eax, 0x18
mov dword [ebp - 0x4c], eax
cmp eax, 0x1000
jb 0x424018
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00401311
mov eax, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x38]
pop ecx
pop ecx
push eax
push ebx
call fcn.0042d727
pop ecx
pop ecx
lea eax, [ebp - 0x64]
push eax
mov ecx, eax
call fcn.004217de
lea ecx, [esi - 0x10]
call fcn.00406c57
mov al, byte [ebp - 0x29]
call fcn.0042dbb5
ret
push 6
push str.productVersionIniFullPath
mov ecx, 0x493f4c
call fcn.0040c5b8
lea ecx, [ebp - 0x88]
mov byte [ebp - 0x29], bl
call fcn.0040c0a1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 2
call fcn.0040c0a1
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x38], ebx
jmp 0x423f83