Function at 0x406311
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x438f4b
mov eax, dword fs:[0]
push eax
sub esp, 0x134
mov eax, dword [0x44bd40]
xor eax, esp
mov dword [esp + 0x130], eax
push ebp
push esi
push edi
mov eax, dword [0x44bd40]
xor eax, esp
push eax
lea eax, [esp + 0x144]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0041814c
mov ecx, esi
call fcn.00405730
test eax, eax
je 0x406320
push str.Continue_installation__but_this_log_line_indicates_that_some_other_process_has_the_MSI_mutex_open_and_locked.
push 8
push 0x44d160
call fcn.00401110
add esp, 0xc
mov eax, dword [esi + 0x400]
xor edi, edi
test eax, eax
jne 0x4065e0
cmp dword [esi + 0x404], edi
jne 0x4065dc
call fcn.004118e7
test eax, eax
jne 0x406352
call fcn.0041181c
test eax, eax
je 0x4065ff
mov ecx, esi
call fcn.00404fb0
mov edi, eax
test edi, edi
je 0x406386
cmp edi, 0xbc2
je 0x406392
push str.Installing_MSI_failed_n
push 0x44d160
call fcn.00406a88
add esp, 8
push edi
mov ecx, esi
call fcn.004057e0
jmp 0x406606
cmp edi, 0xbc2
jne 0x4065ff
cmp dword [esi + 0x3fc], 0
jne 0x4065ff
push str.ERROR_SUCCESS_REBOOT_REQUIRED_find_where_the_temp_file_is._n
push 0x44d160
call fcn.00406f12
push 0x103
lea eax, [esp + 0x49]
push 0
push eax
mov byte [esp + 0x50], 0
call fcn.00421e30
push 0
lea ecx, [esp + 0x28]
push ecx
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionInstaller
push 0x80000002
call fcn.00412719
add esp, 0x2c
test eax, eax
jne 0x4065cc
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x1c]
push ecx
push 0
push str.InstallerLocation
push edx
mov dword [esp + 0x2c], 1
mov dword [esp + 0x34], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4065a7
push 0x43c560
lea eax, [esp + 0x40]
push 0x104
push eax
call fcn.00421eaa
lea ecx, [esp + 0x48]
push ecx
push str.temp_file_in__s_n
push 0x44d160
call fcn.00406f12
mov edx, dword [esp + 0x28]
push edx
call fcn.00412960
add esp, 0x1c
push str._temp__cdguid_MSI
lea ecx, [esp + 0x24]
call fcn.004033c0
push 0x800
push 0
lea eax, [esp + 0x28]
push eax
lea ecx, [esi + 0x2c8]
mov dword [esp + 0x158], 0
call fcn.00409c7e
mov eax, dword [esp + 0x24]
mov ebp, 0x10
cmp dword [esp + 0x38], ebp
jae 0x40649d
lea eax, [esp + 0x24]
push eax
call fcn.0040f6cd
mov eax, dword [esp + 0x28]
add esp, 4
cmp dword [esp + 0x38], ebp
jae 0x4064b4
lea eax, [esp + 0x24]
push eax
mov ecx, esi
call fcn.00405350
push str.msiexec.exe
lea ecx, [esp + 0x24]
call fcn.00403430
cmp dword [esp + 0x38], ebp
mov eax, dword [esp + 0x24]
jae 0x4064d8
lea eax, [esp + 0x24]
push eax
push str.Setting_msi_launchbase_to__s_n
push 1
push 0x44d160
call fcn.00401110
mov eax, dword [esp + 0x34]
add esp, 0x10
cmp dword [esp + 0x38], ebp
jae 0x4064fb
lea eax, [esp + 0x24]
mov ecx, dword [esi + 0xe8]
push eax
push str.launchbase
push 0
push 0x43c684
push ecx
call fcn.0040dab6
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne 0x406559
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
push eax
call fcn.0041244b
push eax
push str.Cannot_write_MSI_launchbase_to_datfile
push str._s_failed_returning__s_n
push 0x44d160
call fcn.00406a88
add esp, 0x14
call esi
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.00401db0
mov eax, esi
jmp 0x406608
cmp dword [esp + 0x38], ebp
mov eax, dword [esp + 0x24]
jae 0x406567
lea eax, [esp + 0x24]
movzx edx, word [esi + 0x10c]
push edx
push eax
mov eax, dword [esi + 0xe8]
push str.launchbase
push 0x43c684
push eax
call fcn.0040dcbc
add esp, 0x14
neg eax
sbb eax, eax
neg eax
je 0x40651f
lea ecx, [esp + 0x20]
mov dword [esp + 0x14c], 0xffffffff
call fcn.00401db0
jmp 0x4065ff
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push edi
push str.Cannot_file_the_installer_value__error__d_n
push 0x44d160
call fcn.00406a88
add esp, 0xc
push edi
mov ecx, esi
call fcn.004057e0
jmp 0x406606
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push edi
push str.Cannot_file_the_installer_key__error__d_n
jmp 0x4065b5
test eax, eax
je 0x4065ed
mov ecx, esi
call fcn.00406250
mov edi, eax
test edi, edi
jne 0x4065ff
cmp dword [esi + 0x404], 0
je 0x4065ff
mov ecx, esi
call fcn.00405880
mov edi, eax
mov ecx, esi
call fcn.00418161
mov eax, edi
mov ecx, dword [esp + 0x144]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x130]
xor ecx, esp
call fcn.00421e14
add esp, 0x140
ret