Function at 0x140029b50
Capabilities:
Set registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x140040150]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov r15, rcx
xor r12d, r12d
mov qword [r11 - 0x48], r12
lea rax, [r11 - 0x50]
mov qword [r11 - 0x58], rax
call fcn.140001550
mov rcx, rax
test rax, rax
je 0x140029e81
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [0x140031948]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rdx, str.CRLogProductPreferences
lea r14, [r12 - 1]
cmp rdx, 0x10000
jae 0x140029bd9
movzx edx, dx
lea rcx, [rsp + 0x38]
call fcn.14000b280
jmp 0x140029bf8
mov rax, r14
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140029be0
mov r8d, eax
lea rcx, [rsp + 0x38]
call fcn.14000b4a0
nop
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x40]
call fcn.140029570
test al, al
je 0x140029e4a
call fcn.140001550
mov rcx, rax
test rax, rax
je 0x140029e8c
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [0x140031948]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x30], rdi
mov rax, qword [r15]
mov rbx, qword [rax]
cmp rbx, rax
je 0x140029e1e
lea rsi, [rbx + 0x40]
cmp qword [rsi + 0x18], 0x10
jb 0x140029c53
mov rsi, qword [rsi]
test rsi, rsi
je 0x140029ccc
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
mov r9d, r14d
mov r8, rsi
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea ebp, [rax - 1]
test ebp, ebp
jle 0x140029ccc
mov edx, 1
sub edx, dword [rdi - 8]
mov ecx, dword [rdi - 0xc]
sub ecx, ebp
or ecx, edx
jge 0x140029c9c
mov edx, ebp
lea rcx, [rsp + 0x30]
call fcn.14000b610
mov rdi, qword [rsp + 0x30]
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rdi
mov r9d, r14d
mov r8, rsi
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp ebp, dword [rdi - 0xc]
jg 0x140029e97
mov dword [rdi - 0x10], ebp
movsxd rax, ebp
mov word [rdi + rax*2], r12w
jmp 0x140029d2d
lea rdx, [rdi - 0x18]
mov rsi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x140029d2d
mov eax, dword [rdx + 0x10]
shr eax, 0x1f
test al, al
je 0x140029cf7
cmp dword [rdx + 0xc], 0
jl 0x140029e76
mov dword [rdx + 8], r12d
mov word [rdi], r12w
jmp 0x140029d2d
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140029d14
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140031948]
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [0x140031948]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x30], rdi
mov edx, dword [rdi - 0x10]
lea esi, [rdx*2 + 1]
cmp dword [rdi - 8], 1
jle 0x140029d4c
lea rcx, [rsp + 0x30]
call fcn.14000b6e0
mov rdi, qword [rsp + 0x30]
lea rdx, [rbx + 0x20]
lea rcx, [rsp + 0x48]
call fcn.1400231a0
cmp qword [rax + 0x18], 8
jb 0x140029d64
mov rax, qword [rax]
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rdi
mov r9d, 1
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x140029dc2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029dbd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029e17
call fcn.14002ba00
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x140029df4
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x140029de9
cmp rbx, qword [rax + 0x10]
jne 0x140029de9
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x140029dd6
mov rbx, rax
cmp rax, qword [r15]
jmp 0x140029c3f
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x140029e0f
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x140029e00
cmp rbx, qword [r15]
jmp 0x140029c3f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x140029e4a
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140031948]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14002b9e0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
ret
mov ecx, 0x80070057
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80070057
call fcn.140001300
int3