Function at 0x140063740
Capabilities:
Delete registry value
Set registry value

Disassembly:
push rbp
push rsi
push r12
sub rsp, 0x50
mov rbp, rcx
mov rcx, qword [rcx]
mov rsi, rdx
mov qword [rsp + 0x20], rdx
lea r9, str.lpUnisetSetInfo_x
lea r8, str.DeleteUninstallSettingsKey
lea rdx, str.CRegistryIF
call fcn.140080c70
mov rax, qword [rsi + 0x20]
xor r12d, r12d
test rax, rax
jne 0x1400637a6
cmp qword [rsi + 0x28], r12
jne 0x1400637a6
cmp qword [rsi + 0x30], r12
jne 0x1400637a6
cmp byte [rsi + 8], r12b
jne 0x1400637a6
mov r8, qword [rsi + 0x18]
mov rdx, qword [rsi]
mov rcx, rbp
call fcn.140067bb0
mov r12d, eax
jmp 0x140063bb6
test rax, rax
mov qword [rsp + 0x70], rbx
jne 0x140063819
cmp qword [rsi + 0x28], r12
jne 0x140063819
cmp qword [rsi + 0x30], r12
jne 0x140063819
cmp byte [rsi + 8], 1
jne 0x140063819
mov r8, qword [rsi + 0x18]
mov rdx, qword [rsi]
lea r9, [rsp + 0x78]
mov rcx, rbp
call fcn.140067a00
test eax, eax
je 0x140063802
mov rdx, qword [rsp + 0x78]
mov rcx, rbp
call fcn.140067170
mov rcx, qword [rsp + 0x78]
mov ebx, r12d
test eax, eax
setne bl
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x140063bb1
mov r8, qword [rsi + 0x18]
mov rdx, qword [rsi]
mov rcx, rbp
call fcn.140067bb0
mov r12d, eax
jmp 0x140063bb1
test rax, rax
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r14
mov r14d, 1
je 0x140063946
mov rbx, qword [rsi + 0x18]
mov rdi, qword [rsi]
mov rcx, qword [rbp]
lea rax, [rsp + 0x78]
lea r9, str.hKey_x__lpszSubKey_s__phSubKey_x
lea r8, str.OpenSubKey
mov qword [rsp + 0x30], rax
lea rdx, str.CRegistryIF
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.140081070
lea rax, [rsp + 0x80]
mov r9d, 0xf003f
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
mov qword [rsp + 0x20], rax
mov r13d, r12d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400638ac
mov rax, qword [rsp + 0x80]
mov r13d, r14d
mov qword [rsp + 0x78], rax
mov rcx, qword [rbp]
lea r9, [0x1400fb428]
lea r8, str.OpenSubKey
lea rdx, str.CRegistryIF
mov dword [rsp + 0x20], r13d
call fcn.140081270
test r13d, r13d
je 0x140063946
mov rbx, qword [rsi + 0x20]
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rbp]
lea r9, str.hKey_x__lpszEntry_s
lea r8, str.DeleteEntry
lea rdx, str.CRegistryIF
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.140081070
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov ecx, r12d
lea r9, [0x1400fb428]
test eax, eax
lea r8, str.DeleteEntry
lea rdx, str.CRegistryIF
sete cl
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbp]
call fcn.140081270
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp qword [rsi + 0x28], r12
je 0x140063a76
mov rbx, qword [rsi + 0x18]
mov rdi, qword [rsi]
mov rcx, qword [rbp]
lea rax, [rsp + 0x78]
lea r9, str.hKey_x__lpszSubKey_s__phSubKey_x
lea r8, str.OpenSubKey
mov qword [rsp + 0x30], rax
lea rdx, str.CRegistryIF
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.140081070
lea rax, [rsp + 0x80]
mov r9d, 0xf003f
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
mov qword [rsp + 0x20], rax
mov r13d, r12d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400639c2
mov rax, qword [rsp + 0x80]
mov r13d, r14d
mov qword [rsp + 0x78], rax
mov rcx, qword [rbp]
lea r9, [0x1400fb428]
lea r8, str.OpenSubKey
lea rdx, str.CRegistryIF
mov dword [rsp + 0x20], r13d
call fcn.140081270
test r13d, r13d
je 0x140063a76
mov rbx, qword [rsi + 0x28]
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rbp]
mov dword [rsp + 0x30], r14d
lea r9, str.hKey_x__lpszEntry_s__dwType_u
lea r8, str.MakeEntry
lea rdx, str.CRegistryIF
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.140081070
mov r9d, r14d
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, r12d
test eax, eax
lea r9, [0x1400fb428]
lea r8, str.MakeEntry
cmove ecx, r14d
lea rdx, str.CRegistryIF
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbp]
call fcn.140081270
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp qword [rsi + 0x30], r12
je 0x140063b9f
mov rbx, qword [rsi + 0x18]
mov rdi, qword [rsi]
mov rcx, qword [rbp]
lea rax, [rsp + 0x78]
lea r9, str.hKey_x__lpszSubKey_s__phSubKey_x
lea r8, str.OpenSubKey
mov qword [rsp + 0x30], rax
lea rdx, str.CRegistryIF
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.140081070
lea rax, [rsp + 0x80]
mov r9d, 0xf003f
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
mov qword [rsp + 0x20], rax
mov r13d, r12d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140063af2
mov rax, qword [rsp + 0x80]
mov r13d, r14d
mov qword [rsp + 0x78], rax
mov rcx, qword [rbp]
lea r9, [0x1400fb428]
lea r8, str.OpenSubKey
lea rdx, str.CRegistryIF
mov dword [rsp + 0x20], r13d
call fcn.140081270
test r13d, r13d
je 0x140063b9f
mov r9, qword [rsi + 0x30]
test r9, r9
je 0x140063b6a
mov r8d, 0x3fffffff
mov rax, r9
mov edx, r12d
mov rcx, r8
cmp word [rax], dx
je 0x140063b4e
add rax, 2
sub rcx, r14
jne 0x140063b36
mov edx, 0x80070057
mov r8, r12
jmp 0x140063b60
test rcx, rcx
jne 0x140063b5d
mov edx, 0x80070057
mov r8, r12
jmp 0x140063b60
sub r8, rcx
test edx, edx
js 0x140063b6f
lea rax, [r8 + r8]
jmp 0x140063b72
mov edx, 0x80070057
mov rax, r12
test edx, edx
jns 0x140063b7b
mov rax, r12
jmp 0x140063b7f
add rax, 2
mov r8, qword [rsi + 0x28]
mov rdx, qword [rsp + 0x78]
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.140067ac0
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r13, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x88]
mov r14, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbp]
lea r9, [0x1400fb428]
lea r8, str.DeleteUninstallSettingsKey
lea rdx, str.CRegistryIF
mov dword [rsp + 0x20], r12d
call fcn.140080e70
mov eax, r12d
add rsp, 0x50
pop r12
pop rsi
pop rbp
ret