Function at 0x458580
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
sub rsp, 0xa88
mov qword [rsp + 0xa80], rbx
mov qword [rsp + 0xa78], rbp
mov qword [rsp + 0xa70], rsi
mov qword [rsp + 0xa68], rdi
mov qword [rsp + 0xa60], r12
mov qword [rsp + 0xa58], r13
mov qword [rsp + 0xa50], r14
mov qword [rsp + 0xa48], r15
mov rbx, rdx
mov qword [rsp + 0x40], 0xfffffffffffffffe
call fcn.004545a0
test eax, eax
je 0x458653
xor r8d, r8d
lea rdx, str.CPrepareInstall_::_SetupRegInstallSource_n
lea rcx, [rsp + 0x940]
call fcn.00486850
movabs rdx, 0x203a5952544e45
mov qword [rsp + 0x80], rdx
lea rdi, [rsp + 0x80]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x940]
xor ecx, ecx
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x458622
call fcn.004546e0
mov rcx, rax
call fcn.004545b0
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
mov edx, 0xa
lea rcx, [rsp + 0x48]
call fcn.0049a7a0
nop
mov rax, qword [0x004dfd00]
mov qword [rsp + 0x380], rax
mov qword [rsp + 0x388], rax
mov qword [rsp + 0x390], rax
mov qword [rsp + 0x398], rax
mov qword [rsp + 0x3a0], rax
mov qword [rsp + 0x3a8], rax
mov qword [rsp + 0x3b0], rax
lea r15, [0x00402490]
mov qword [rsp + 0x20], r15
lea r9, [0x00402470]
mov r8d, 5
mov edx, InitCommonControls
lea rcx, [rsp + 0x3b8]
call fcn.00486b20
mov rdx, qword [0x004dfd00]
mov qword [rsp + 0x408], rdx
mov qword [rsp + 0x410], rdx
mov qword [rsp + 0x418], rdx
mov r13, qword [rbx + 8]
test r13, r13
je 0x458ad7
xor r14d, r14d
nop
lea r12, [r13 + 0x10]
mov r13, qword [r13]
mov rdx, r12
lea rcx, [rsp + 0x380]
call fcn.0049b31c
lea rdx, [r12 + 8]
lea rcx, [rsp + 0x388]
call fcn.0049b31c
lea rdx, [r12 + 0x10]
lea rcx, [rsp + 0x390]
call fcn.0049b31c
lea rdx, [r12 + 0x18]
lea rcx, [rsp + 0x398]
call fcn.0049b31c
lea rdx, [r12 + 0x20]
lea rcx, [rsp + 0x3a0]
call fcn.0049b31c
lea rdx, [r12 + 0x28]
lea rcx, [rsp + 0x3a8]
call fcn.0049b31c
lea rdx, [r12 + 0x30]
lea rcx, [rsp + 0x3b0]
call fcn.0049b31c
lea rdi, [r12 + 0x38]
mov rax, r12
neg rax
lea rsi, [rsp + rax + 0x388]
lea rbp, [rsp + rax + 0x380]
mov ebx, 5
lea rcx, [rdi + rbp]
mov rdx, rdi
call fcn.0049b31c
lea rdx, [rdi + 8]
lea rcx, [rsi + rdi]
call fcn.0049b31c
add rdi, 0x10
dec rbx
jne 0x4587a4
lea rdx, [r12 + 0x88]
lea rcx, [rsp + 0x408]
call fcn.0049b31c
lea rdx, [r12 + 0x90]
lea rcx, [rsp + 0x410]
call fcn.0049b31c
lea rdx, [r12 + 0x98]
lea rcx, [rsp + 0x418]
call fcn.0049b31c
mov edx, dword [r12 + 0xa0]
mov dword [rsp + 0x420], edx
lea rcx, [rsp + 0x424]
lea rdx, [r12 + 0xa4]
mov r8d, 0x518
call fcn.00486d40
mov rdx, qword [rsp + 0x380]
lea rcx, [rsp + 0x180]
sub rcx, rdx
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
inc rdx
test al, al
jne 0x458842
xor r8d, r8d
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x48]
call fcn.0049a948
test rax, rax
jne 0x458ace
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x48]
call fcn.0049aaa4
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x20], rdx
mov r9d, 0xf003f
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersionSetup
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x458ace
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
lea rdx, str.Installation_Sources
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x458a23
mov ecx, dword [rsp + 0x30]
call fcn.00486ab0
mov rsi, rax
xor eax, eax
mov rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x180]
repne scasb al, byte [rdi]
not rcx
dec rcx
mov rdx, rcx
mov ecx, dword [rsp + 0x30]
lea ebp, [rdx + rcx + 1]
mov ecx, ebp
call fcn.00486ab0
mov rbx, rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
lea rdx, str.Installation_Sources
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x458a0e
lea rcx, [rsp + 0x180]
lea rax, [rsp + 0x180]
mov rdx, rbx
sub rdx, rax
nop
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
inc rcx
test al, al
jne 0x458960
xor eax, eax
mov rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x180]
repne scasb al, byte [rdi]
not rcx
mov byte [rcx + rbx - 1], al
mov r8d, dword [rsp + 0x30]
mov rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x180]
repne scasb al, byte [rdi]
not rcx
lea rcx, [rcx + rbx]
mov rdx, rsi
call fcn.00486d40
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rbx
mov r9d, 7
xor r8d, r8d
lea rdx, str.Installation_Sources
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x458a0e
call fcn.004545a0
test eax, eax
je 0x458a0e
lea r8, [rsp + 0x180]
lea rdx, str.Install_Source_path_set_to__s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
mov rcx, rsi
call fcn.00487080
mov rcx, rbx
call fcn.00487080
jmp 0x458ac3
lea rdi, [rsp + 0x180]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, byte [0x004b4e30]
mov byte [rdi - 1], al
xor eax, eax
mov rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x180]
repne scasb al, byte [rdi]
not rcx
dec rcx
mov dword [rsp + 0x28], ecx
lea rax, [rsp + 0x180]
mov qword [rsp + 0x20], rax
mov r9d, 7
xor r8d, r8d
lea rdx, str.Installation_Sources
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x458ac3
call fcn.004545a0
test eax, eax
je 0x458ac3
lea r8, [rsp + 0x180]
lea rdx, str.Install_Source_path_set_to__s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test r13, r13
jne 0x458700
call fcn.004545a0
test eax, eax
je 0x458b62
xor r8d, r8d
lea rdx, str.CPrepareInstall_::_SetupRegInstallSource_n
lea rcx, [rsp + 0x940]
call fcn.00486850
movabs rdx, 0x20203a54495845
mov qword [rsp + 0x80], rdx
lea rdi, [rsp + 0x80]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x940]
xor ecx, ecx
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x458b30
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
call fcn.004546e0
mov rcx, rax
call fcn.004545c0
nop
lea rcx, [rsp + 0x418]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x410]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x408]
call fcn.0049b1dc
nop
mov r9, r15
mov r8d, 5
mov edx, InitCommonControls
lea rcx, [rsp + 0x3b8]
call fcn.00486c80
nop
lea rcx, [rsp + 0x3b0]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x3a8]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x3a0]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x398]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x390]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x388]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x380]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x48]
call fcn.0049a80c
mov rbx, qword [rsp + 0xa80]
mov rbp, qword [rsp + 0xa78]
mov rsi, qword [rsp + 0xa70]
mov rdi, qword [rsp + 0xa68]
mov r12, qword [rsp + 0xa60]
mov r13, qword [rsp + 0xa58]
mov r14, qword [rsp + 0xa50]
mov r15, qword [rsp + 0xa48]
add rsp, 0xa88
ret