Function at 0x140018a80
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov byte [rax + 0x20], r9b
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov qword [rbp + 0x17], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov r14, r8
mov rdi, rdx
mov rsi, rcx
mov al, byte [0x1401a8d84]
neg al
sbb rbx, rbx
add rbx, 0xffffffff80000002
lea rcx, [0x1401a09a8]
mov rax, qword [0x1401a09a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x21], rax
mov r8d, dword [0x1401a8d80]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xd
sub ecx, edx
mov r13d, 1
xor r15d, r15d
cmp ecx, 0xa
jne 0x140018b26
test r8d, r8d
cmove r8d, r13d
mov dword [0x1401a8d80], r8d
mov qword [rbp - 0x39], r15
mov dword [rbp - 0x31], r15d
mov qword [rbp - 0x29], r15
lea rdx, [0x1401399d0]
lea rcx, [rbp - 9]
call fcn.140002c48
nop
mov r8, rax
lea rdx, [rbp - 0x21]
lea rcx, [rbp + 0xf]
call fcn.14000d870
nop
lea r8, [0x1401a9150]
mov rdx, rax
lea rcx, [rbp - 1]
call fcn.14000d870
nop
lea r8, [0x140139960]
mov rdx, rax
lea rcx, [rbp - 0x11]
call fcn.140017bcc
nop
mov r8, rsi
mov rdx, rax
lea rcx, [rbp + 7]
call fcn.14000d870
nop
mov r9d, 0x20019
mov r8, qword [rax]
mov rdx, rbx
lea rcx, [rbp - 0x39]
call fcn.14001878c
test eax, eax
setne bl
mov rdx, qword [rbp + 7]
add rdx, 0xffffffffffffffe8
or r12d, 0xffffffff
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018bcb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018bec
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018c0d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018c2e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 9]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018c4e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140018caf
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x140018c65
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x39], r15
mov dword [rbp - 0x31], r15d
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018c8a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018caa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140018e45
mov dword [rbp + 0x7f], r15d
mov dword [rbp - 0x15], 4
lea rax, [rbp - 0x15]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x19]
xor r8d, r8d
mov rdx, qword [rdi]
mov rbx, qword [rbp - 0x39]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140018dd5
cmp dword [rbp - 0x19], 4
jne 0x140018dd5
mov eax, r15d
test eax, eax
jne 0x140018dd5
test rbx, rbx
je 0x140018d15
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbx, r15
mov qword [rbp - 0x39], rbx
mov dword [rbp - 0x31], r15d
call fcn.140018a1c
test al, al
jne 0x140018d50
mov ecx, dword [0x1401a8d80]
mov edx, ecx
test ecx, ecx
je 0x140018d46
dec edx
je 0x140018d3d
add ecx, r13d
mov dword [0x1401a8d80], ecx
jmp 0x140018d50
mov dword [0x1401a8d80], r15d
jmp 0x140018d50
mov dword [0x1401a8d80], 2
mov eax, dword [rbp + 0x7f]
mov dword [r14], eax
test rbx, rbx
je 0x140018d68
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x39], r15
mov dword [rbp - 0x31], r15d
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018d8d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018dad
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rdi]
sub rdx, 0x18
mov ecx, r12d
lock xadd dword [rdx + 0x10], ecx
add ecx, r12d
test ecx, ecx
jg 0x140018dcd
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov al, r13b
jmp 0x140018e66
test rbx, rbx
je 0x140018dea
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbx, r15
mov qword [rbp - 0x39], rbx
mov dword [rbp - 0x31], r15d
test rbx, rbx
je 0x140018e00
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x39], r15
mov dword [rbp - 0x31], r15d
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018e25
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018e45
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140018e64
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor al, al
mov rbx, qword [rsp + 0xe0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret