Function at 0x416dc0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push str.Enter____PostResultToRegistry
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
push str.Installation_result_is___
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
mov edi, dword [ebp + 8]
push edi
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
push str.The_type_of_driver_being_installed_is___
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
mov esi, dword [ebp + 0xc]
push esi
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
push str.The_driver_version_being_installed_is___
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
mov ebx, dword [ebp + 0x14]
push ebx
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 0x38
mov dword [ebp - 4], 0
lea eax, [ebp - 4]
push eax
push str.SoftwareIntelBasedrivers
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x416fef
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x416e60
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416e60
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push 2
push 0
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp dword [0x44aa7c], 1
je 0x416eaa
cmp dword [0x44aa80], 1
je 0x416eaa
cmp dword [0x44aa84], 1
je 0x416eaa
cmp dword [0x44aa34], 1
jne 0x416ede
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416eb0
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push 0x435c2c
push 1
push 0
push str.Reboot
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push str.SUCCESS
push edi
call fcn.0041cd47
add esp, 8
test eax, eax
jne 0x416f88
push 0x5f
push esi
call fcn.0041cca1
add esp, 8
test esi, esi
je 0x416f12
test eax, eax
je 0x416f12
sub eax, esi
sar eax, 1
xor ecx, ecx
mov word [esi + eax*2 + 2], cx
push str.Version
push dword [ebp + 0x10]
push esi
push 0x3bc
push str.SetupBasedriver.cpp
call fcn.0040bdd0
mov ecx, ebx
add esp, 0x14
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416f32
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push ebx
push 1
push 0
push esi
push dword [ebp - 4]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
call esi
mov ecx, ebx
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416f60
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push ebx
push 1
push 0
push str.Version
push dword [ebp - 4]
call esi
jmp 0x416f8e
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push str.FAILURE
push edi
call fcn.0041cd47
add esp, 8
test eax, eax
je 0x416fa9
cmp dword [0x44aa88], 0
jne 0x416fe6
push str.First_time_calling_PostResultToRegistry___or_FAILURE_found_
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
mov ecx, edi
add esp, 8
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416fc0
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push 2
push 0
push str.Install
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.Exit____PostResultToRegistry
push 0x44aca0
mov dword [0x44aa88], 1
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret