Function at 0x140004660
Capabilities:
Query or enumerate registry key

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1e8]
sub rsp, 0x2c0
mov qword [rbp - 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14006b9c0]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov r13, rcx
lea r8, str.CheckCentennialVersionExist
mov qword [rsp + 0x60], r8
lea rax, str.ThpsrvLib.cpp
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x70], 0x4b0
lea rax, str.__CheckCentennialVersionExist_
mov qword [rsp + 0x78], rax
lea rax, [0x1400278f0]
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], 3
lea rdx, str.ENTER__s
lea rcx, [rsp + 0x68]
call fcn.1400013f0
nop
xor esi, esi
mov dword [r13], esi
mov qword [rsp + 0x50], rsi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftSecurityManagerCapAuthzApplicationsEx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140004a2e
mov dword [rsp + 0x40], esi
mov r12d, esi
call fcn.140002590
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x140004752
mov ecx, 0x80004005
call fcn.140002340
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rdx, str.TOSHIBASettings_
test rdx, 0xffffffffffff0000
jne 0x140004797
movzx ebx, dx
xor edx, edx
mov ecx, ebx
call fcn.140002410
test rax, rax
je 0x1400047a8
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.140005ef0
jmp 0x1400047a8
mov r8d, 0x10
lea rcx, [rsp + 0x58]
call fcn.1400060a0
nop
mov dword [rsp + 0x40], 0x208
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x60]
call fcn.14000b0c0
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x60]
xor edx, edx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
or r15, 0xffffffffffffffff
test eax, eax
jne 0x140004a15
inc r12d
call fcn.140002590
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
je 0x140004a0a
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
lea rcx, [rbp - 0x60]
lea rax, [rbp - 0x60]
test rax, 0xffffffffffff0000
jne 0x140004860
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.140002410
test rax, rax
je 0x140004946
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140005ef0
mov rbx, qword [rsp + 0x48]
jmp 0x140004946
lea rax, [rbp - 0x60]
mov rdi, r15
nop word [rax + rax]
inc rdi
cmp word [rax + rdi*2], 0
jne 0x140004870
test edi, edi
jne 0x1400048ce
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x140004946
cmp dword [rdx + 0x10], 0
jge 0x1400048aa
cmp dword [rbx - 0xc], 0
jl 0x1400049cb
mov dword [rbx - 0x10], esi
mov word [rbx], si
jmp 0x140004946
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400048ba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
jmp 0x140004946
mov r14d, dword [rbx - 0x10]
lea rsi, [rbp - 0x60]
sub rsi, rbx
sar rsi, 1
test edi, edi
js 0x1400049ff
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140004906
mov edx, edi
lea rcx, [rsp + 0x48]
call fcn.140006040
mov rbx, qword [rsp + 0x48]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp rsi, r14
lea r14, [rax + rax]
mov r9, r14
ja 0x14000492a
lea r8, [rbx + rsi*2]
call fcn.140009d30
jmp 0x140004933
lea r8, [rbp - 0x60]
call fcn.140009ca8
cmp edi, dword [rbx - 0xc]
jg 0x1400049f4
mov dword [rbx - 0x10], edi
xor esi, esi
mov word [r14 + rbx], si
mov rdx, qword [rsp + 0x58]
test rdx, rdx
je 0x14000496e
cmp dword [rbx - 0x10], 0
jl 0x14000496e
mov rcx, rbx
call fcn.14000c658
test rax, rax
je 0x14000496e
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x1400049d6
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004982
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov dword [rsp + 0x40], 0x208
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x60]
call fcn.14000b0c0
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x60]
mov edx, r12d
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jmp 0x1400047ef
mov ecx, 0x80070057
call fcn.140002340
nop
mov dword [r13], 1
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004a15
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x140004a15
mov ecx, 0x80070057
call fcn.140002340
int3
mov ecx, 0x80070057
call fcn.140002340
nop
mov ecx, 0x80004005
call fcn.140002340
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004a2e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140004a3f
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov r8, qword [rsp + 0x60]
lea rdx, str.LEAVE__s
lea rcx, [rsp + 0x68]
call fcn.1400013f0
xor eax, eax
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.14000b090
lea r11, [rsp + 0x2c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret