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

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x498]
sub rsp, 0x570
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x180063080]
xor rax, rsp
mov qword [rbp + 0x460], rax
mov r12, rcx
mov r15, 0xffffffffffffffff
mov r8, rcx
lea rcx, [rbp - 0x70]
call fcn.180017ec0
nop
lea r8d, [r15 + 2]
lea rdx, [0x18005a720]
mov rcx, rax
call fcn.180007260
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x60], xmm1
xor ebx, ebx
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
lea rdx, [r12 + 0x20]
cmp qword [r12 + 0x38], 0x10
jb 0x1800162f5
mov rdx, qword [r12 + 0x20]
mov r8, qword [r12 + 0x30]
lea rcx, [rsp + 0x50]
call fcn.180007260
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x30], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x18001635f
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001635a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800167df
call fcn.1800205d4
movdqa xmm0, xmmword [0x18005abe0]
movdqu xmmword [rsp + 0x60], xmm0
mov byte [rsp + 0x50], 0
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x1800163ad
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800163a8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800167e5
call fcn.1800205d4
movdqa xmm0, xmmword [0x18005abe0]
movdqu xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
mov qword [rbp - 0x80], rbx
mov qword [rbp - 0x78], rbx
lea r14, [rbp + 0x20]
mov rdi, qword [rbp + 0x20]
mov r13, qword [rbp + 0x38]
cmp r13, 0x10
cmovae r14, rdi
mov rsi, qword [rbp + 0x30]
cmp rsi, 0x10
jae 0x1800163f7
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x78], 0xf
jmp 0x18001646c
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rax, [rbx + 1]
cmp rax, 0x1000
jb 0x180016445
lea rcx, [rax + 0x27]
cmp rcx, rax
cmovbe rcx, r15
call fcn.1800205dc
mov rcx, rax
test rax, rax
je 0x1800167eb
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x180016452
test rax, rax
je 0x180016452
mov rcx, rax
call fcn.1800205dc
mov qword [rsp + 0x70], rax
lea r8, [rsi + 1]
mov rdx, r14
mov rcx, rax
call fcn.180022420
mov qword [rbp - 0x78], rbx
xor ebx, ebx
mov qword [rbp - 0x80], rsi
lea rdx, [rsp + 0x70]
lea rcx, [rbp]
call fcn.18000e700
nop
lea rdx, [rbp - 0x28]
mov rcx, r12
call fcn.180015970
nop
mov qword [rbp - 0x38], rbx
lea rdx, [rbp]
cmp qword [rbp + 0x18], 8
cmovae rdx, qword [rbp]
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
mov r9d, 0xf013f
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x180016654
mov dword [rbp - 8], 1
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x40]
call fcn.180022880
mov dword [rbp - 0x30], 0x208
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 8]
xor r8d, r8d
lea rdx, str.FirstVersion
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x18001660f
lea rax, [rsp + 0x50]
mov qword [rbp - 0x50], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], bx
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.1800076e0
nop
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x70]
call fcn.180007170
nop
lea r8, [rsp + 0x50]
mov rdx, rax
call fcn.180015b40
test eax, eax
jle 0x180016648
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x250]
call fcn.180022880
mov dword [rbp - 0x30], 0x208
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x250]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 8]
xor r8d, r8d
lea rdx, str.UpdateVersion
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1800165fd
lea rax, [rsp + 0x50]
mov qword [rbp - 0x48], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], bx
lea rdx, [rbp + 0x250]
lea rcx, [rsp + 0x50]
call fcn.1800076e0
nop
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x70]
call fcn.180007170
nop
lea r8, [rsp + 0x50]
mov rdx, rax
call fcn.180015b40
test eax, eax
jle 0x180016648
mov r15d, 1
mov r9d, r15d
lea rdx, str.UpdateVersion
jmp 0x18001661f
mov r15d, ebx
mov r9d, 1
lea rdx, str.FirstVersion
lea rcx, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rcx, qword [rbp - 0x28]
mov eax, dword [rbp - 0x18]
add eax, eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1800166d2
lea rdx, [rbp]
cmp qword [rbp + 0x18], 8
cmovae rdx, qword [rbp]
lea rax, [rbp - 8]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x2011f
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov r15d, ebx
lea rcx, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rcx, qword [rbp - 0x28]
mov eax, dword [rbp - 0x18]
add eax, eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
lea rdx, str.FirstVersion
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x180016712
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001670d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800167f1
call fcn.1800205d4
mov qword [rbp - 0x18], rbx
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], bx
mov rdx, qword [rbp + 0x18]
cmp rdx, 8
jb 0x180016762
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001675d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800167f7
call fcn.1800205d4
movdqa xmm0, xmmword [0x18005abd0]
movdqu xmmword [rbp + 0x10], xmm0
mov word [rbp], bx
cmp r13, 0x10
jb 0x1800167a6
lea rdx, [r13 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x18001679e
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800167d9
mov rcx, rdi
call fcn.1800205d4
mov eax, r15d
mov rcx, qword [rbp + 0x460]
xor rcx, rsp
call fcn.1800205b0
lea r11, [rsp + 0x570]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.18002c92c
nop
call fcn.18002c92c
nop
call fcn.18002c92c
int3
call fcn.18002c92c
nop
call fcn.18002c92c
nop
call fcn.18002c92c
int3
sub rsp, 0x28
call fcn.18000e9d0
mov rcx, rax
add rsp, 0x28
jmp 0x180016250