Function at 0x1400066e0
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x178]
sub rsp, 0x250
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x14006b9c0]
xor rax, rsp
mov qword [rbp + 0x140], rax
lea rax, str.FixReg
mov qword [rbp - 0x10], rax
lea r14, str.__FixReg_
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], 3
lea r9, [0x1400278f0]
mov r8d, 0x12d
lea rdx, str.RegGuard.cpp
lea rcx, [rbp - 8]
call fcn.1400013d0
mov r8, qword [rbp - 0x10]
lea rdx, str.ENTER__s
lea rcx, [rbp - 8]
call fcn.1400013f0
nop
lea rcx, str.SOFTWAREDynabookHDD_Protection2DefaultSetting
mov qword [rbp - 0x50], rcx
mov rbx, rcx
call fcn.140002590
mov rdx, rax
xor r12d, r12d
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
je 0x1400072c4
or r13, 0xffffffffffffffff
nop
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x78], rax
test rbx, rbx
je 0x1400067f2
test rbx, 0xffffffffffff0000
jne 0x1400067e3
movzx ebx, bx
xor edx, edx
mov ecx, ebx
call fcn.140002410
test rax, rax
je 0x140006806
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.140005ef0
jmp 0x140006806
mov rax, r13
inc rax
cmp word [rbx + rax*2], 0
jne 0x1400067e6
jmp 0x1400067f5
mov eax, r12d
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.1400060a0
nop
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x78], xmm0
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x78]
call fcn.140007b90
call fcn.140002590
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
je 0x1400072b9
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
call fcn.140002590
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
je 0x1400072ae
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x40], rdi
mov ecx, 1
mov dword [rsp + 0x70], ecx
mov r15d, ecx
mov qword [rsp + 0x48], rcx
mov rbx, qword [rbp - 0x50]
mov esi, dword [rbx + 0xc04]
test esi, esi
je 0x140007148
nop
movsxd rax, ecx
imul rcx, rax, 0xa04
add rbx, rcx
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.140007300
lea rdx, [rbx + 0x204]
lea rcx, [rsp + 0x40]
call fcn.140007300
cmp esi, 4
jne 0x140006a46
imul rax, r15, 0xa04
mov rcx, qword [rbp - 0x50]
lea r8, [rcx + 0x204]
add r8, rax
mov edx, r12d
lea r9d, [rsi + 4]
movzx ecx, word [r8]
lea eax, [rcx - 0x41]
cmp ax, 5
ja 0x1400068f5
movzx eax, cx
sub eax, 0x37
jmp 0x140006909
lea eax, [rcx - 0x61]
cmp ax, 5
movzx eax, cx
ja 0x140006906
sub eax, 0x57
jmp 0x140006909
sub eax, 0x30
shl edx, 4
add edx, eax
add r8, 2
dec r9
jne 0x1400068e0
mov dword [rsp + 0x50], edx
lea rax, str.RegGuard::WriteValue
mov qword [rbp - 0x40], rax
lea rax, str.__RegGuard::WriteValue_
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 3
lea r9, [0x1400278f0]
mov r8d, 0x53
lea rdx, str.RegGuard.cpp
lea rcx, [rbp - 0x38]
call fcn.1400013d0
mov r8, qword [rbp - 0x40]
lea rdx, str.ENTER__s
lea rcx, [rbp - 0x38]
call fcn.1400013f0
mov rcx, qword [rbp - 0x70]
test rcx, rcx
jne 0x140006982
mov rcx, r12
mov rax, qword [rbp - 0x78]
test rax, rax
cmovne rcx, rax
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
mov r8, qword [rbp - 0x40]
lea rdx, str.LEAVE__s
lea rcx, [rbp - 0x38]
call fcn.1400013f0
mov qword [rsp + 0x28], r14
lea r9, [0x1400278f0]
lea rdx, str.RegGuard.cpp
mov dword [rsp + 0x20], 3
test edi, edi
je 0x140006a13
mov r8d, 0x15f
lea rcx, [rbp + 0x110]
call fcn.1400013d0
mov rcx, rax
mov r9d, dword [rsp + 0x50]
mov r8, rbx
lea rdx, str.Failed_to_write__s_with__02X
call fcn.1400013f0
mov rdi, qword [rsp + 0x40]
jmp 0x14000711c
mov r8d, 0x163
lea rcx, [rbp + 0xc0]
call fcn.1400013d0
mov rcx, rax
mov r9, rbx
mov r8d, dword [rsp + 0x50]
lea rdx, str.Succeeded_to_write__02X_to__s
call fcn.1400013f0
mov rdi, qword [rsp + 0x40]
jmp 0x14000711c
cmp esi, 1
jne 0x140006d19
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x68], xmm0
xor r8d, r8d
mov edx, r8d
mov qword [rbp - 0x58], rdx
mov r12d, r8d
mov r15d, r8d
mov rdi, qword [rsp + 0x40]
mov eax, dword [rdi - 0x10]
mov rsi, qword [rbp - 0x60]
mov r14, qword [rbp - 0x68]
test eax, eax
jle 0x140006be2
nop
test r15, r15
js 0x1400071f3
cmp r12d, eax
jg 0x1400071f3
movzx ebx, word [rdi + r15*2]
mov word [rsp + 0x32], bx
lea rax, [rsp + 0x32]
cmp rax, rsi
jae 0x140006b4b
lea rax, [rsp + 0x32]
cmp r14, rax
ja 0x140006b4b
lea rbx, [rsp + 0x32]
sub rbx, r14
sar rbx, 1
cmp rsi, rdx
jne 0x140006b38
mov rax, rdx
sub rax, rsi
sar rax, 1
cmp rax, 1
jae 0x140006b38
sub rsi, r14
sar rsi, 1
movabs r9, 0x7fffffffffffffff
mov rax, r9
sub rax, rsi
cmp rax, 1
jb 0x1400071d9
inc rsi
sub rdx, r14
sar rdx, 1
mov rcx, rdx
shr rcx, 1
mov rax, r9
sub rax, rcx
cmp rax, rdx
jae 0x140006b16
mov rdx, r8
jmp 0x140006b19
add rdx, rcx
cmp rdx, rsi
cmovb rdx, rsi
lea rcx, [rbp - 0x68]
call fcn.140006210
mov rdx, qword [rbp - 0x58]
mov rsi, qword [rbp - 0x60]
mov r14, qword [rbp - 0x68]
xor r8d, r8d
test rsi, rsi
je 0x140006bc8
movzx eax, word [r14 + rbx*2]
mov word [rsi], ax
jmp 0x140006bc8
cmp rsi, rdx
jne 0x140006bc0
mov rax, rdx
sub rax, rsi
sar rax, 1
cmp rax, 1
jae 0x140006bc0
sub rsi, r14
sar rsi, 1
movabs r9, 0x7fffffffffffffff
mov rax, r9
sub rax, rsi
cmp rax, 1
jb 0x1400071e6
inc rsi
sub rdx, r14
sar rdx, 1
mov rcx, rdx
shr rcx, 1
mov rax, r9
sub rax, rcx
cmp rax, rdx
jae 0x140006b9e
mov rdx, r8
jmp 0x140006ba1
add rdx, rcx
cmp rdx, rsi
cmovb rdx, rsi
lea rcx, [rbp - 0x68]
call fcn.140006210
mov rdx, qword [rbp - 0x58]
mov rsi, qword [rbp - 0x60]
mov r14, qword [rbp - 0x68]
xor r8d, r8d
test rsi, rsi
je 0x140006bc8
mov word [rsi], bx
add rsi, 2
mov qword [rbp - 0x60], rsi
inc r12d
inc r15
mov eax, dword [rdi - 0x10]
cmp r12d, eax
jl 0x140006a80
lea rax, str.RegGuard::WriteValue
mov qword [rbp + 0x50], rax
lea rax, str.__RegGuard::WriteValue_
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 3
lea r9, [0x1400278f0]
mov r8d, 0x7c
lea rdx, str.RegGuard.cpp
lea rcx, [rbp + 0x58]
call fcn.1400013d0
mov r8, qword [rbp + 0x50]
lea rdx, str.ENTER__s
lea rcx, [rbp + 0x58]
call fcn.1400013f0
nop
sub rsi, r14
sar rsi, 1
add esi, esi
mov r15, qword [rbp - 0x70]
xor r12d, r12d
test r15, r15
jne 0x140006c55
mov r15d, r12d
mov rax, qword [rbp - 0x78]
test rax, rax
cmovne r15, rax
mov rbx, qword [rsp + 0x38]
cmp dword [rbx - 8], 1
jle 0x140006c72
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x38]
call fcn.140005e30
mov rbx, qword [rsp + 0x38]
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r14
mov r9d, 1
xor r8d, r8d
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
mov r8, qword [rbp + 0x50]
lea rdx, str.LEAVE__s
lea rcx, [rbp + 0x58]
call fcn.1400013f0
lea rax, str.__FixReg_
lea r9, [0x1400278f0]
lea rdx, str.RegGuard.cpp
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 3
test esi, esi
je 0x140006cdb
mov r8d, 0x16f
lea rcx, [rbp + 0x98]
jmp 0x140006ce8
mov r8d, 0x173
lea rcx, [rbp + 0xe8]
call fcn.1400013d0
mov r9, rbx
mov r8, rdi
lea rdx, str.Failed_to_write__s_to__s
mov rcx, rax
call fcn.1400013f0
nop
test r14, r14
je 0x140007110
mov rcx, r14
call fcn.140002ff0
jmp 0x140007110
cmp esi, 3
jne 0x140006a3c
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
xor edx, edx
mov esi, edx
mov qword [rsp + 0x68], rdx
mov rdi, qword [rsp + 0x40]
cmp dword [rdi - 8], 1
jle 0x140006d53
mov edx, dword [rdi - 0x10]
lea rcx, [rsp + 0x40]
call fcn.140005e30
mov rdi, qword [rsp + 0x40]
xor edx, edx
mov r12, rdi
mov r14, qword [rsp + 0x58]
cmp dx, word [rdi]
je 0x14000702c
mov rbx, qword [rsp + 0x60]
nop dword [rax]
movzx ecx, word [r12 + 2]
cmp dx, cx
je 0x140007027
movzx eax, word [r12 + 4]
cmp dx, ax
je 0x140006f03
mov r8d, 0x2c
cmp r8w, ax
jne 0x140006eef
movzx eax, word [r12]
mov word [rbp + 0x138], ax
mov word [rbp + 0x13a], cx
mov word [rbp + 0x13c], dx
mov dword [rsp + 0x74], edx
lea r8, [rsp + 0x74]
lea rdx, str._02X
lea rcx, [rbp + 0x138]
call fcn.14000a6d0
movzx r15d, byte [rsp + 0x74]
mov byte [rsp + 0x30], r15b
lea rax, [rsp + 0x30]
cmp rax, rbx
jae 0x140006e75
lea rax, [rsp + 0x30]
cmp r14, rax
ja 0x140006e75
lea r15, [rsp + 0x30]
sub r15, r14
cmp rbx, rsi
jne 0x140006e67
mov rax, rsi
sub rax, rbx
cmp rax, 1
jae 0x140006e67
mov rax, r14
sub rax, rbx
dec rax
cmp rax, 1
jb 0x1400071fe
sub rbx, r14
inc rbx
sub rsi, r14
mov rcx, rsi
shr rcx, 1
mov rax, r13
sub rax, rcx
cmp rax, rsi
jae 0x140006e41
xor esi, esi
jmp 0x140006e44
add rsi, rcx
cmp rsi, rbx
cmovb rsi, rbx
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140006380
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
test rbx, rbx
je 0x140006ee5
movzx eax, byte [r15 + r14]
mov byte [rbx], al
jmp 0x140006ee5
cmp rbx, rsi
jne 0x140006edd
mov rax, rsi
sub rax, rbx
cmp rax, 1
jae 0x140006edd
mov rax, r14
sub rax, rbx
dec rax
cmp rax, 1
jb 0x14000720b
sub rbx, r14
inc rbx
sub rsi, r14
mov rcx, rsi
shr rcx, 1
mov rax, r13
sub rax, rcx
cmp rax, rsi
jae 0x140006eb7
xor esi, esi
jmp 0x140006eba
add rsi, rcx
cmp rsi, rbx
cmovb rsi, rbx
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140006380
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
test rbx, rbx
je 0x140006ee5
mov byte [rbx], r15b
inc rbx
xor edx, edx
mov qword [rsp + 0x60], rbx
add r12, 6
cmp dx, word [r12]
jne 0x140006d70
jmp 0x140007027
mov dword [rbp - 0x80], edx
lea r8, [rbp - 0x80]
lea rdx, str._02X
mov rcx, r12
call fcn.14000a6d0
movzx r15d, byte [rbp - 0x80]
mov byte [rsp + 0x31], r15b
lea rax, [rsp + 0x31]
cmp rax, rbx
jae 0x140006fb4
lea rax, [rsp + 0x31]
cmp r14, rax
ja 0x140006fb4
lea r15, [rsp + 0x31]
sub r15, r14
cmp rbx, rsi
jne 0x140006fa6
mov rax, rsi
sub rax, rbx
cmp rax, 1
jae 0x140006fa6
mov rax, r14
sub rax, rbx
dec rax
cmp rax, 1
jb 0x140007218
sub rbx, r14
inc rbx
sub rsi, r14
mov rcx, rsi
shr rcx, 1
mov rax, r13
sub rax, rcx
cmp rax, rsi
jae 0x140006f85
xor esi, esi
jmp 0x140006f88
add rsi, rcx
cmp rsi, rbx
cmovb rsi, rbx
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140006380
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
test rbx, rbx
je 0x14000701f
movzx eax, byte [r14 + r15]
mov byte [rbx], al
jmp 0x14000701f
cmp rbx, rsi
jne 0x140007017
mov rax, rsi
sub rax, rbx
cmp rax, 1
jae 0x140007017
mov rax, r14
sub rax, rbx
dec rax
cmp rax, 1
jb 0x140007225
sub rbx, r14
inc rbx
sub rsi, r14
mov rcx, rsi
shr rcx, 1
mov rax, r13
sub rax, rcx
cmp rax, rsi
jae 0x140006ff6
xor esi, esi
jmp 0x140006ff9
add rsi, rcx
cmp rsi, rbx
cmovb rsi, rbx
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140006380
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
test rbx, rbx
je 0x14000701f
mov byte [rbx], r15b
inc rbx
mov qword [rsp + 0x60], rbx
mov r15, qword [rsp + 0x48]
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x80]
call fcn.1400062d0
mov rbx, rax
mov qword [rsp + 0x48], rax
lea rax, str.RegGuard::WriteValue
mov qword [rbp + 0x20], rax
lea rax, str.__RegGuard::WriteValue_
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 3
lea r9, [0x1400278f0]
mov r8d, 0x67
lea rdx, str.RegGuard.cpp
lea rcx, [rbp + 0x28]
call fcn.1400013d0
mov r8, qword [rbp + 0x20]
lea rdx, str.ENTER__s
lea rcx, [rbp + 0x28]
call fcn.1400013f0
mov edx, dword [rbx + 8]
sub edx, dword [rbx]
mov rcx, qword [rbp - 0x70]
xor r12d, r12d
test rcx, rcx
jne 0x1400070b4
mov ecx, r12d
mov rax, qword [rbp - 0x78]
test rax, rax
cmovne rcx, rax
mov rax, qword [rbx]
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rax
mov r9d, 3
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov r8, qword [rbp + 0x20]
lea rdx, str.LEAVE__s
lea rcx, [rbp + 0x28]
call fcn.1400013f0
nop
mov rcx, qword [rbx]
test rcx, rcx
je 0x140007101
call fcn.140002ff0
mov qword [rbx], r12
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], r12
test r14, r14
je 0x140007115
mov rcx, r14
call fcn.140002ff0
jmp 0x140007115
mov r15, qword [rsp + 0x48]
lea r14, str.__FixReg_
mov ecx, dword [rsp + 0x70]
inc ecx
mov dword [rsp + 0x70], ecx
inc r15
mov qword [rsp + 0x48], r15
imul rax, r15, 0xa04
mov rbx, qword [rbp - 0x50]
mov esi, dword [rax + rbx + 0x200]
test esi, esi
jne 0x140006890
mov rbx, qword [rbx + 0x1f4c8]
mov qword [rbp - 0x50], rbx
lea rdx, [rdi - 0x18]
test rbx, rbx
je 0x140007232
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140007171
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000718b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x14000719a
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x1400071aa
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400071c3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
call fcn.140002590
mov rdx, rax
test rax, rax
je 0x1400072c4
jmp 0x1400067a0
lea rcx, str.vector_T__too_long
call fcn.140009a0c
int3
lea rcx, str.vector_T__too_long
call fcn.140009a0c
int3
mov ecx, 0x80070057
call fcn.140002340
nop
lea rcx, str.vector_T__too_long
call fcn.140009a0c
int3
lea rcx, str.vector_T__too_long
call fcn.140009a0c
int3
lea rcx, str.vector_T__too_long
call fcn.140009a0c
int3
lea rcx, str.vector_T__too_long
call fcn.140009a0c
nop
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140007243
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000725d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x14000726c
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x14000727c
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140007296
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov r8, qword [rbp - 0x10]
lea rdx, str.LEAVE__s
lea rcx, [rbp - 8]
call fcn.1400013f0
xor eax, eax
jmp 0x1400072cf
mov ecx, 0x80004005
call fcn.140002340
nop
mov ecx, 0x80004005
call fcn.140002340
nop
mov ecx, 0x80004005
call fcn.140002340
nop
mov rcx, qword [rbp + 0x140]
xor rcx, rsp
call fcn.14000b090
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret