Function at 0x1400549c0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x1401339d8]
xor rax, rsp
mov qword [rsp + 0x78], rax
movzx r14d, r8b
mov rsi, rdx
mov r13, rcx
mov qword [rsp + 0x40], rdx
call fcn.140014190
lea r9, [0x1400e8328]
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
xor edx, edx
mov rcx, rax
call fcn.14009cf00
xor r12d, r12d
mov ebx, r12d
mov qword [rsp + 0x48], rbx
call fcn.140014190
cmp byte [rax + 0x64], r12b
je 0x140054a76
lea ecx, [r12 + 0x28]
call fcn.140095e50
mov rdi, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140054a6e
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm0
mov qword [rdi + 0x20], rax
call fcn.140014190
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov rdx, rax
mov rcx, rdi
call fcn.140098570
mov rbx, rax
jmp 0x140054a71
mov rbx, r12
mov qword [rsp + 0x48], rbx
test r14b, r14b
je 0x140054e50
mov dword [rsp + 0x70], r12d
lea r14, [r13 + 0xf8]
mov r8, r14
cmp qword [r14 + 0x18], 8
jb 0x140054a98
mov r8, qword [r14]
lea r15, [r13 + 0x50]
mov rdx, r15
cmp qword [r15 + 0x18], 8
jb 0x140054aa9
mov rdx, qword [r15]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
mov r9d, 2
mov rcx, qword [r13 + 0x20]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegGetValueW]
test eax, eax
je 0x140054b39
call fcn.140014190
lea r9, str.IsManaged_key_not_found.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 2
mov rcx, rax
call fcn.14009cf00
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
xor r8d, r8d
lea rdx, [0x1400e8328]
mov rcx, rsi
call fcn.140013240
nop
test rbx, rbx
je 0x140054b31
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400553d1
mov eax, dword [rsp + 0x70]
test eax, eax
jne 0x140054ba9
call fcn.140014190
lea r9, str.IsManaged_key_is_empty.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 2
mov rcx, rax
call fcn.14009cf00
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
xor r8d, r8d
lea rdx, [0x1400e8328]
mov rcx, rsi
call fcn.140013240
nop
test rbx, rbx
je 0x140054ba1
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400553d1
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
mov rdx, rax
shr rdx, 1
jne 0x140054bd7
mov qword [rsp + 0x60], rdx
mov word [rsp + rdx*2 + 0x50], r12w
jmp 0x140054c0f
cmp rdx, 7
ja 0x140054bf9
mov qword [rsp + 0x60], rdx
movzx eax, r12w
lea rdi, [rsp + 0x50]
mov rcx, rdx
rep stosw word [rdi], ax
mov word [rsp + rdx*2 + 0x50], r12w
jmp 0x140054c0f
mov word [rsp + 0x20], r12w
mov r9, rdx
xor r8d, r8d
lea rcx, [rsp + 0x50]
call fcn.140002a90
lea rax, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rax, qword [rsp + 0x50]
cmp qword [r14 + 0x18], 8
jb 0x140054c2a
mov r14, qword [r14]
cmp qword [r15 + 0x18], 8
jb 0x140054c34
mov r15, qword [r15]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
mov r9d, 2
mov r8, r14
mov rdx, r15
mov rcx, qword [r13 + 0x20]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegGetValueW]
test eax, eax
je 0x140054d24
call fcn.140014190
lea r9, str.IsManaged_is_empty.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 5
mov rcx, rax
call fcn.14009cf00
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
xor r8d, r8d
lea rdx, [0x1400e8328]
mov rcx, rsi
call fcn.140013240
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x140054cee
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054ce9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400553fb
call fcn.140095e90
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x140054d1c
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400553d1
mov ecx, dword [rsp + 0x70]
shr rcx, 1
dec rcx
mov r8, qword [rsp + 0x60]
cmp rcx, r8
ja 0x140054d55
mov qword [rsp + 0x60], rcx
lea rax, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rax, qword [rsp + 0x50]
mov word [rax + rcx*2], r12w
jmp 0x140054db3
mov rdx, rcx
sub rdx, r8
mov rdi, qword [rsp + 0x68]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x140054d9d
mov qword [rsp + 0x60], rcx
lea r9, [rsp + 0x50]
cmp rdi, 8
cmovae r9, qword [rsp + 0x50]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x140054d92
movzx eax, r12w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r12w
jmp 0x140054db3
mov word [rsp + 0x20], r12w
mov r9, rdx
xor r8d, r8d
lea rcx, [rsp + 0x50]
call fcn.140002a90
lea rdi, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rdi, qword [rsp + 0x50]
call fcn.140014190
mov qword [rsp + 0x20], rdi
lea r9, str.Read_this_user_config_from_registry:__s
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 2
mov rcx, rax
call fcn.14009cf00
call fcn.140014190
lea r9, [0x1400e8328]
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 1
mov rcx, rax
call fcn.14009cf00
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [rsi + 0x10], xmm1
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x140054e48
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400553d1
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
xor r8d, r8d
lea rdx, [0x1400e8328]
lea rcx, [rsp + 0x50]
call fcn.140013240
nop
mov rcx, qword [r13 + 0x28]
test rcx, rcx
je 0x140055315
mov dword [rsp + 0x70], r12d
lea r14, [r13 + 0x98]
mov r8, r14
cmp qword [r14 + 0x18], 8
jb 0x140054ea4
mov r8, qword [r14]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
xor edx, edx
lea r9d, [rdx + 2]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegGetValueW]
test eax, eax
je 0x140054f8a
call fcn.140014190
lea r9, str.User_config_key_not_found.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 2
mov rcx, rax
call fcn.14009cf00
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
xor r8d, r8d
lea rdx, [0x1400e8328]
mov rcx, rsi
call fcn.140013240
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x140054f54
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054f4f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055401
call fcn.140095e90
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x140054f82
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400553d1
mov eax, dword [rsp + 0x70]
test eax, eax
jne 0x140055054
call fcn.140014190
lea r9, str.User_config_is_empty.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 2
mov rcx, rax
call fcn.14009cf00
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
xor r8d, r8d
lea rdx, [0x1400e8328]
mov rcx, rsi
call fcn.140013240
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x14005501e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140055019
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055401
call fcn.140095e90
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x14005504c
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400553d1
mov rcx, rax
shr rcx, 1
mov r8, qword [rsp + 0x60]
cmp rcx, r8
ja 0x140055081
mov qword [rsp + 0x60], rcx
lea rax, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rax, qword [rsp + 0x50]
mov word [rax + rcx*2], r12w
jmp 0x1400550df
mov rdx, rcx
sub rdx, r8
mov rdi, qword [rsp + 0x68]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x1400550c9
mov qword [rsp + 0x60], rcx
lea r9, [rsp + 0x50]
cmp rdi, 8
cmovae r9, qword [rsp + 0x50]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x1400550be
movzx eax, r12w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r12w
jmp 0x1400550df
mov word [rsp + 0x20], r12w
mov r9, rdx
xor r8d, r8d
lea rcx, [rsp + 0x50]
call fcn.140002a90
lea rax, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rax, qword [rsp + 0x50]
cmp qword [r14 + 0x18], 8
jb 0x1400550fa
mov r14, qword [r14]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
mov r9d, 2
mov r8, r14
xor edx, edx
mov rcx, qword [r13 + 0x28]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegGetValueW]
test eax, eax
je 0x1400551e9
call fcn.140014190
lea r9, str.User_config_is_empty.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 5
mov rcx, rax
call fcn.14009cf00
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
xor r8d, r8d
lea rdx, [0x1400e8328]
mov rcx, rsi
call fcn.140013240
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x1400551b3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400551ae
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055401
call fcn.140095e90
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x1400551e1
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400553d1
mov ecx, dword [rsp + 0x70]
shr rcx, 1
dec rcx
mov r8, qword [rsp + 0x60]
cmp rcx, r8
ja 0x14005521a
mov qword [rsp + 0x60], rcx
lea rax, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rax, qword [rsp + 0x50]
mov word [rax + rcx*2], r12w
jmp 0x140055278
mov rdx, rcx
sub rdx, r8
mov rdi, qword [rsp + 0x68]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x140055262
mov qword [rsp + 0x60], rcx
lea r9, [rsp + 0x50]
cmp rdi, 8
cmovae r9, qword [rsp + 0x50]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x140055257
movzx eax, r12w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r12w
jmp 0x140055278
mov word [rsp + 0x20], r12w
mov r9, rdx
xor r8d, r8d
lea rcx, [rsp + 0x50]
call fcn.140002a90
lea rdi, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rdi, qword [rsp + 0x50]
call fcn.140014190
mov qword [rsp + 0x20], rdi
lea r9, str.Read_this_user_config_from_registry:__s
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 2
mov rcx, rax
call fcn.14009cf00
call fcn.140014190
lea r9, [0x1400e8328]
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 1
mov rcx, rax
call fcn.14009cf00
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [rsi + 0x10], xmm1
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x14005530d
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400553d1
call fcn.140014190
lea r9, str.Invalid_config_key_registry.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadConfig
mov edx, 5
mov rcx, rax
call fcn.14009cf00
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
xor r8d, r8d
lea rdx, [0x1400e8328]
mov rcx, rsi
call fcn.140013240
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x140055399
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140055394
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055407
call fcn.140095e90
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x1400553c7
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400553d1
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1400964b0
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call fcn.1400b1720
int3
call fcn.1400b1720
int3
call fcn.1400b1720
int3