Function at 0x140068710
Capabilities:
Set registry value

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
sub rsp, 0x8a0
mov rax, qword [0x14012df80]
xor rax, rsp
mov qword [rsp + 0x870], rax
mov rbx, qword [rsp + 0x8f0]
mov r12, rcx
mov rcx, qword [rcx]
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], r9d
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], rdx
mov edi, r9d
mov r14, r8
mov rsi, rdx
lea rdx, str.CRegistryIF
lea r9, str.hKey_x__lpUninstFileInfo_x__nIdx_u__lpszSubKey_s
lea r8, str.EntryUninstallFilesWorker
call fcn.140081070
test rbx, rbx
je 0x1400687cb
lea rax, [rsp + 0x70]
mov edx, 0x400
lea rcx, [rsp + 0x70]
sub rbx, rax
nop
lea rax, [rdx + 0x7ffffbfe]
test rax, rax
je 0x1400687bb
movzx eax, word [rbx + rcx]
test ax, ax
je 0x1400687bb
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140068790
sub rcx, 2
mov word [rcx], dx
jmp 0x1400687e4
test rdx, rdx
jne 0x1400687c4
sub rcx, 2
mov word [rcx], 0
jmp 0x1400687e4
lea r8, [0x1400fb428]
lea rcx, [rsp + 0x70]
mov r9d, edi
mov edx, 0x400
call fcn.14000ff40
mov rcx, qword [r12]
lea rax, [rsp + 0x58]
lea r9, str.hKey_x__lpszSubKey_s__phSubKey_x
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
lea r8, str.MakeSubKey
mov qword [rsp + 0x28], rax
lea rdx, str.CRegistryIF
mov qword [rsp + 0x20], rsi
call fcn.140081070
xor edi, edi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x68]
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdi
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], edi
mov ebx, edi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x14006886b
mov rax, qword [rsp + 0x68]
mov ebx, 1
mov qword [rsp + 0x58], rax
mov rcx, qword [r12]
lea r9, [0x1400fb428]
lea r8, str.MakeSubKey
lea rdx, str.CRegistryIF
mov dword [rsp + 0x20], ebx
call fcn.140081270
test ebx, ebx
je 0x140068ce5
mov qword [rsp + 0x898], rbp
mov qword [rsp + 0x890], r13
mov r13, qword [r14 + 8]
test r13, r13
mov qword [rsp + 0x888], r15
mov esi, 0x3fffffff
je 0x14006899a
mov rcx, rsi
mov rax, r13
mov edx, edi
cmp word [rax], dx
je 0x1400688e0
add rax, 2
sub rcx, 1
jne 0x1400688c7
mov edx, 0x80070057
mov rbp, rdi
jmp 0x1400688f5
test rcx, rcx
jne 0x1400688ef
mov edx, 0x80070057
mov rbp, rdi
jmp 0x1400688f5
mov rbp, rsi
sub rbp, rcx
test edx, edx
js 0x1400688fe
add rbp, rbp
jmp 0x140068901
mov rbp, rdi
test edx, edx
jns 0x14006890a
mov rbp, rdi
jmp 0x14006890e
add rbp, 2
mov rbx, qword [rsp + 0x58]
mov rcx, qword [r12]
mov dword [rsp + 0x40], ebp
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], 1
lea r15, str.ProfilePath
lea r9, str.hKey_x__lpszEntry_s__dwType_u__lpbyVal_x__nSize_u
lea r8, str.SetValueEx
lea rdx, str.CRegistryIF
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbx
call fcn.140081070
mov r9d, 1
xor r8d, r8d
mov rdx, r15
mov rcx, rbx
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], r13
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, edi
lea r9, [0x1400fb428]
test eax, eax
lea r8, str.SetValueEx
lea rdx, str.CRegistryIF
sete cl
mov dword [rsp + 0x20], ecx
mov rcx, qword [r12]
call fcn.140081270
mov r13, qword [r14 + 0x10]
test r13, r13
je 0x140068a83
mov rcx, rsi
mov rax, r13
mov edx, edi
nop
cmp word [rax], dx
je 0x1400689c9
add rax, 2
sub rcx, 1
jne 0x1400689b0
mov edx, 0x80070057
mov rbp, rdi
jmp 0x1400689de
test rcx, rcx
jne 0x1400689d8
mov edx, 0x80070057
mov rbp, rdi
jmp 0x1400689de
mov rbp, rsi
sub rbp, rcx
test edx, edx
js 0x1400689e7
add rbp, rbp
jmp 0x1400689ea
mov rbp, rdi
test edx, edx
jns 0x1400689f3
mov rbp, rdi
jmp 0x1400689f7
add rbp, 2
mov rbx, qword [rsp + 0x58]
mov rcx, qword [r12]
mov dword [rsp + 0x40], ebp
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], 1
lea r15, str.FileSpec
lea r9, str.hKey_x__lpszEntry_s__dwType_u__lpbyVal_x__nSize_u
lea r8, str.SetValueEx
lea rdx, str.CRegistryIF
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbx
call fcn.140081070
mov r9d, 1
xor r8d, r8d
mov rdx, r15
mov rcx, rbx
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], r13
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, edi
lea r9, [0x1400fb428]
test eax, eax
lea r8, str.SetValueEx
lea rdx, str.CRegistryIF
sete cl
mov dword [rsp + 0x20], ecx
mov rcx, qword [r12]
call fcn.140081270
mov rbp, qword [r14 + 0x18]
mov r15, qword [rsp + 0x888]
test rbp, rbp
je 0x140068b70
mov rcx, rsi
mov rax, rbp
mov edx, edi
cmp word [rax], dx
je 0x140068ab9
add rax, 2
sub rcx, 1
jne 0x140068aa0
mov edx, 0x80070057
mov rsi, rdi
jmp 0x140068acb
test rcx, rcx
jne 0x140068ac8
mov edx, 0x80070057
mov rsi, rdi
jmp 0x140068acb
sub rsi, rcx
test edx, edx
js 0x140068ad4
add rsi, rsi
jmp 0x140068ad7
mov rsi, rdi
test edx, edx
jns 0x140068ae0
mov rsi, rdi
jmp 0x140068ae4
add rsi, 2
mov rbx, qword [rsp + 0x58]
mov rcx, qword [r12]
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0x30], 1
lea r13, str.TextSpec
lea r9, str.hKey_x__lpszEntry_s__dwType_u__lpbyVal_x__nSize_u
lea r8, str.SetValueEx
lea rdx, str.CRegistryIF
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
call fcn.140081070
mov r9d, 1
xor r8d, r8d
mov rdx, r13
mov rcx, rbx
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbp
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, edi
lea r9, [0x1400fb428]
test eax, eax
lea r8, str.SetValueEx
lea rdx, str.CRegistryIF
sete cl
mov dword [rsp + 0x20], ecx
mov rcx, qword [r12]
call fcn.140081270
movzx eax, byte [r14]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [r12]
shr al, 3
mov dword [rsp + 0x40], 1
lea rsi, str.Flags
not al
lea r9, str.hKey_x__lpszEntry_s__dwType_u__lpbyVal_x__nSize_u
lea r8, str.SetValueEx
and al, 1
lea rdx, str.CRegistryIF
mov byte [rsp + 0x50], al
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 3
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rbx
call fcn.140081070
lea rax, [rsp + 0x50]
mov r9d, 3
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, edi
lea r9, [0x1400fb428]
test eax, eax
lea r8, str.SetValueEx
lea rdx, str.CRegistryIF
sete cl
mov dword [rsp + 0x20], ecx
mov rcx, qword [r12]
call fcn.140081270
mov r11b, byte [r14]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [r12]
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
and r11d, 2
mov dword [rsp + 0x30], 4
shl r11d, 7
lea rsi, str.Type
lea r9, str.hKey_x__lpszEntry_s__dwType_u__lpbyVal_x__nSize_u
lea r8, str.SetValueEx
lea rdx, str.CRegistryIF
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x60], r11d
mov qword [rsp + 0x20], rbx
call fcn.140081070
lea rax, [rsp + 0x60]
mov r9d, 4
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [r12]
test eax, eax
lea r9, [0x1400fb428]
lea r8, str.SetValueEx
sete dil
lea rdx, str.CRegistryIF
mov dword [rsp + 0x20], edi
call fcn.140081270
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r13, qword [rsp + 0x890]
mov rbp, qword [rsp + 0x898]
mov rcx, qword [rsp + 0x870]
xor rcx, rsp
call fcn.1400cd6e0
add rsp, 0x8a0
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret