Function at 0x14001c660
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
mov qword [rbp + 7], 0xfffffffffffffffe
mov r15, r8
mov rsi, rdx
mov r14, rcx
mov qword [rbp + 0x17], rcx
mov qword [rbp + 0xf], rdx
mov r9d, dword [0x1401d5d60]
lea r8d, [r9 + 2]
lea eax, [r9 + 1]
imul r8d, eax
imul r8d, r9d
mov eax, 0x30c30c31
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub r8d, edx
xor r12d, r12d
cmp r8d, 0x14
jne 0x14001c707
lea ecx, [r12 + 0x28]
call fcn.1400d2e28
mov rdi, rax
mov ebx, r12d
call fcn.1400d41a0
add eax, dword [0x1401d5d60]
mov dword [rdi + rbx*4], eax
inc rbx
cmp rbx, 0xa
jl 0x14001c6d8
mov eax, dword [rdi + 0x24]
mov dword [0x1401d5d60], eax
mov rcx, rdi
call fcn.1400d3f08
mov r9d, dword [0x1401d5d60]
movzx ecx, byte [0x1401d5d64]
neg cl
sbb rdi, rdi
add rdi, 0xffffffff80000002
mov ecx, r9d
imul ecx, r9d
imul ecx, r9d
mov eax, 0x30c30c31
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 3
jne 0x14001c769
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
lea rcx, str.__r_
mov rax, qword [str.__r_]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x31], rax
mov qword [rbp - 0x51], r12
mov dword [rbp - 0x49], r12d
mov qword [rbp - 0x41], r12
lea rcx, str.__r_
mov rax, qword [str.__r_]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x39], rax
lea rdx, [0x1401560d8]
test rdx, 0xffffffffffff0000
jne 0x14001c7d7
movzx ebx, dx
mov ecx, ebx
call fcn.1400019e0
test rax, rax
je 0x14001c7e1
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp - 0x39]
call fcn.140002760
jmp 0x14001c7e1
lea rcx, [rbp - 0x39]
call fcn.1400034f0
nop
lea r8, [rbp - 0x39]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x11]
call fcn.14000ff10
nop
lea r8, [0x1401d6110]
mov rdx, rax
lea rcx, [rbp - 1]
call fcn.14000ff10
nop
lea r8, [0x140154a5c]
mov rdx, rax
lea rcx, [rbp - 9]
call fcn.14001b320
nop
mov r8, r14
mov rdx, rax
lea rcx, [rbp - 0x19]
call fcn.14000ff10
nop
mov qword [rbp - 0x21], r12
lea rcx, [rbp - 0x21]
mov qword [rsp + 0x20], rcx
mov r9d, 0x20019
xor r8d, r8d
mov rdx, qword [rax]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ecx, eax
test eax, eax
jne 0x14001c862
mov dword [rbp - 0x49], r12d
mov ecx, r12d
mov rax, qword [rbp - 0x21]
mov qword [rbp - 0x51], rax
test ecx, ecx
setne dil
mov rdx, qword [rbp - 0x19]
add rdx, 0xffffffffffffffe8
or ebx, 0xffffffff
lock add dword [rdx + 0x10], ebx
jg 0x14001c883
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 9]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001c89c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001c8b5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001c8ce
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x39]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001c8e6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test dil, dil
je 0x14001c93c
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14001c8fe
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x51], r12
mov dword [rbp - 0x49], r12d
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001c91b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14001c937
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x14001cabc
mov dword [rbp - 0x59], r12d
mov dword [rbp - 0x25], 4
lea rax, [rbp - 0x25]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x59]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x29]
xor r8d, r8d
mov rdx, qword [rsi]
mov rdi, qword [rbp - 0x51]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14001ca58
cmp dword [rbp - 0x29], 4
jne 0x14001ca58
test rdi, rdi
je 0x14001c997
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, r12
mov qword [rbp - 0x51], r12
mov dword [rbp - 0x49], r12d
call fcn.14001c5e0
test al, al
jne 0x14001c9b4
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [0x1401d5d60], eax
jmp 0x14001c9ba
mov ecx, dword [0x1401d5d60]
mov eax, dword [rbp - 0x59]
mov dword [r15], eax
imul ecx, ecx
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
cmp ecx, 0xa
jne 0x14001c9f2
mov ecx, 4
call fcn.1400d3fa0
mov ecx, dword [0x1401d5d60]
mov dword [rax], ecx
test rdi, rdi
je 0x14001ca04
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x51], r12
mov dword [rbp - 0x49], r12d
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001ca21
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14001ca3d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001ca54
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov al, 1
jmp 0x14001cad5
test rdi, rdi
je 0x14001ca6d
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, r12
mov qword [rbp - 0x51], r12
mov dword [rbp - 0x49], r12d
test rdi, rdi
je 0x14001ca83
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x51], r12
mov dword [rbp - 0x49], r12d
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001caa0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14001cabc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001cad3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor al, al
add rsp, 0xc0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret