Function at 0x140055410
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x1401339d8]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov rsi, rdx
mov r15, rcx
mov qword [rsp + 0x40], rdx
call fcn.140014190
lea r9, [0x1400e8328]
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadState
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 0x1400554bc
lea ecx, [r12 + 0x28]
call fcn.140095e50
mov rdi, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400554b4
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::ReadState
mov rdx, rax
mov rcx, rdi
call fcn.140098570
mov rbx, rax
jmp 0x1400554b7
mov rbx, r12
mov qword [rsp + 0x48], rbx
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 [r15 + 0x28]
test rcx, rcx
je 0x14005591c
mov dword [rsp + 0x70], r12d
lea r14, [r15 + 0xd8]
mov r8, r14
cmp qword [r14 + 0x18], 8
jb 0x140055510
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 0x1400555f6
call fcn.140014190
lea r9, str.State_info_is_empty.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadState
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 0x1400555c0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400555bb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400559ca
call fcn.140095e90
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x1400555ee
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400559a5
mov eax, dword [rsp + 0x70]
test eax, eax
jne 0x1400556c0
call fcn.140014190
lea r9, str.State_info_is_empty.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadState
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 0x14005568a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140055685
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400559ca
call fcn.140095e90
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x1400556b8
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400559a5
mov rcx, rax
shr rcx, 1
mov r8, qword [rsp + 0x60]
cmp rcx, r8
ja 0x1400556ed
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 0x14005574b
mov rdx, rcx
sub rdx, r8
mov rdi, qword [rsp + 0x68]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x140055735
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 0x14005572a
movzx eax, r12w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r12w
jmp 0x14005574b
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 0x140055766
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 [r15 + 0x28]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegGetValueW]
test eax, eax
je 0x140055855
call fcn.140014190
lea r9, str.Faild_to_read_state_info_from_registry
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadState
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 0x14005581f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005581a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400559ca
call fcn.140095e90
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
test rbx, rbx
je 0x14005584d
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400559a5
mov ecx, dword [rsp + 0x70]
shr rcx, 1
dec rcx
mov r8, qword [rsp + 0x60]
cmp rcx, r8
ja 0x140055886
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 0x1400558e4
mov rdx, rcx
sub rdx, r8
mov rdi, qword [rsp + 0x68]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x1400558ce
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 0x1400558c3
movzx eax, r12w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r12w
jmp 0x1400558e4
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.State_Info:__s
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadState
mov edx, 2
mov rcx, rax
call fcn.14009cf00
jmp 0x14005593c
call fcn.140014190
lea r9, str.Invalid_config_registry_key.
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadState
mov edx, 5
mov rcx, rax
call fcn.14009cf00
call fcn.140014190
lea r9, [0x1400e8328]
lea r8, str.ProgrammableKey::PKRegistrySetting::ReadState
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 0x14005599b
mov rcx, rbx
call fcn.140099040
mov edx, 0x28
mov rcx, rbx
call fcn.140095e90
mov rax, rsi
jmp 0x1400559a5
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1400964b0
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
call fcn.1400b1720
int3