Function at 0x14002a490
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
xor r12d, r12d
mov dword [rbp + 0x50], 4
mov r15, rcx
mov qword [rbp - 0x20], r12
lea rax, [rbp - 0x20]
mov dword [rbp + 0x48], r12d
mov rcx, 0xffffffff80000001
mov dword [rbp + 0x58], r12d
mov r9d, 0x2001f
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, str.SoftwareMicrosoftInputPersonalizationTrainedDataStore
mov esi, r12d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov r13d, 0x80070000
test eax, eax
je 0x14002a524
movzx ebx, ax
or ebx, r13d
test eax, eax
cmovle ebx, eax
call fcn.140008898
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14002a524
cmp dword [rcx], r12d
jbe 0x14002a524
call fcn.140008898
lea r8, str.Opening_InputPersonalization_registry
mov edx, ebx
call fcn.14002a310
mov rcx, qword [rbp - 0x20]
lea rax, [rbp + 0x50]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x58]
lea rax, [rbp + 0x48]
xor r8d, r8d
lea rdx, str.HarvestContacts
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_RegQueryValueExW]
mov r14d, eax
test eax, eax
jne 0x14002a561
cmp dword [rbp + 0x48], r12d
mov ebx, r12d
sete bl
jmp 0x14002a566
mov ebx, 2
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x14002a575
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
movzx edi, r14w
or edi, r13d
test r14d, r14d
cmovle edi, r14d
call fcn.140008898
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14002a5a9
cmp dword [rcx], r12d
jbe 0x14002a5a9
call fcn.140008898
lea r8, str.Querying_HARVESTER_VALUE_from_registry
mov edx, edi
call fcn.14002a310
mov edi, 1
test ebx, ebx
jne 0x14002a5bd
mov byte [r15 + 0xc], dil
xor eax, eax
jmp 0x14002a6ee
cmp ebx, edi
jne 0x14002a5ec
call fcn.140008898
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14002a5b6
cmp dword [rcx], r12d
jbe 0x14002a5b6
call fcn.140008898
lea r8, str.Contact_Harvesting_disabled_in_registry
mov edx, 0x80004004
call fcn.14002a310
jmp 0x14002a5b6
lea rcx, str.SoftwareMicrosoftInputPersonalizationTrainedDataStore
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
test rax, rax
je 0x14002a706
mov qword [rsp + 0x30], r12
lea rcx, [rbp - 0x18]
mov r8, rax
mov dword [rsp + 0x28], 0x2011f
mov rdx, 0xffffffff80000001
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], r12
call fcn.140001b5c
mov r14, qword [rbp - 0x18]
test eax, eax
jne 0x14002a6a4
lea r9d, [rax + 4]
mov dword [rbp + 0x48], edi
lea rax, [rbp + 0x48]
mov dword [rsp + 0x28], r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.HarvestContacts
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14002a69e
movzx edi, ax
or edi, r13d
test eax, eax
cmovle edi, eax
call fcn.140008898
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14002a696
cmp dword [rcx], r12d
jbe 0x14002a696
call fcn.140008898
lea r8, str.Setting_ContactHarvester_registry_DWORD
mov edx, edi
call fcn.140021e20
mov esi, 0x80004005
mov dil, r12b
mov byte [r15 + 0xc], dil
jmp 0x14002a6d5
movzx esi, ax
or esi, r13d
test eax, eax
cmovle esi, eax
call fcn.140008898
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14002a6d5
cmp dword [rcx], r12d
jbe 0x14002a6d5
call fcn.140008898
lea r8, str.Creating_ContactHarvester_registry_key
mov edx, esi
call fcn.140021e20
test r14, r14
je 0x14002a6e3
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, esi
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x8007000e
call fcn.140001648
int3