Function at 0x403f10
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x4088c8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x24
push ebx
push esi
mov esi, ecx
push edi
push 0x40cac0
lea ecx, [esp + 0x10]
call fcn.004077dc
push 0x40cac0
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], 0
call fcn.004077dc
push 0x40cac0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3c], 1
call fcn.004077dc
push 0x40cac0
lea ecx, [esp + 0x14]
mov byte [esp + 0x3c], 2
call fcn.004077dc
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 3
call sub.MFC42.DLL_CString::CString_2
push ecx
lea edi, [esi + 0x78]
mov ebx, 4
mov ecx, esp
mov dword [esp + 0x20], esp
push edi
mov byte [esp + 0x40], bl
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x40], 5
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.installPath
call fcn.004077dc
push ecx
mov byte [esp + 0x44], 6
mov ecx, esp
mov dword [esp + 0x34], esp
push str.SOFTWAREHOMELANDPatternCenterV5
call fcn.004077dc
mov byte [esp + 0x44], bl
call fcn.00402bd0
add esp, 8
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.5.00
call fcn.004077dc
push ecx
mov byte [esp + 0x40], 7
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x40c530
call fcn.004077dc
push ecx
mov byte [esp + 0x44], 8
mov ecx, esp
mov dword [esp + 0x28], esp
push str.SOFTWAREHOMELANDPatternCenterV5
call fcn.004077dc
mov byte [esp + 0x44], bl
call fcn.00402bd0
add esp, 0xc
mov ecx, esi
push str.SOFTWAREHOMELANDPatternCenterV5
push 0x80000002
call fcn.00406850
mov ecx, esi
call fcn.004041f0
mov ecx, esi
call fcn.00404ae0
mov ecx, esi
call fcn.004053d0
mov ecx, esi
call fcn.00405d40
push str.Database_
lea eax, [esp + 0x20]
push edi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3c], 9
call fcn.0040787e
lea ecx, [esp + 0x1c]
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x10]
push ecx
push str.DSNPatternCenter
push edx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [esp + 0x10]
push 0
push 1
call sub.MFC42.DLL_CString::Replace
mov eax, dword [esp + 0x10]
push eax
push str.Microsoft_Access_Driver__.mdb_
push ebx
push 0
call fcn.00407c78
mov edi, dword [edi]
push str.Uninstall.exe
lea ecx, [esp + 0x20]
push edi
push ecx
mov ecx, esi
call fcn.004068d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x3c], 0xa
call fcn.0040787e
lea ecx, [esp + 0x1c]
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallPatternCenter_V5
lea ecx, [esp + 0x10]
call fcn.0040782a
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x40c428
call fcn.004077dc
push ecx
mov byte [esp + 0x40], 0xb
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.DisplayName
call fcn.004077dc
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
mov byte [esp + 0x48], 0xc
call sub.MFC42.DLL_CString::CString_3
mov byte [esp + 0x44], bl
call fcn.00402bd0
add esp, 8
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x40], 0xd
mov ecx, esp
mov dword [esp + 0x30], esp
push str.UninstallString
call fcn.004077dc
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
mov byte [esp + 0x48], 0xe
call sub.MFC42.DLL_CString::CString_3
mov byte [esp + 0x44], bl
call fcn.00402bd0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov ecx, esi
push eax
push 0x80000002
call fcn.00406850
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x38], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x38], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x38], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov dword [esp + 0x38], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x30]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add esp, 0x30
ret