Function at 0x14004e500
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x598]
sub rsp, 0x698
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov rax, qword [0x1401cee90]
xor rax, rsp
mov qword [rbp + 0x580], rax
mov qword [rbp - 0x78], r9
mov r13, r8
mov qword [rbp - 0x80], rdx
mov qword [rsp + 0x70], rcx
mov rdi, qword [rbp + 0x600]
mov qword [rsp + 0x60], rdi
mov qword [rbp - 0x60], rdi
mov dword [rsp + 0x50], 4
xor esi, esi
mov dword [rsp + 0x30], esi
lea rcx, str.D_r_
mov rax, qword [str.D_r_]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
mov r8d, dword [0x1401d6d80]
mov ecx, r8d
imul ecx, r8d
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
or r12, 0xffffffffffffffff
cmp ecx, 0xa
jne 0x14004e5ea
mov eax, 0x51eb851f
imul r8d
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul edx, edx, 0x64
sub r8d, edx
add r8d, 0x2f4
movsxd rcx, r8d
mov eax, 4
mul rcx
cmovo rax, r12
mov rcx, rax
call fcn.1400d4448
mov rcx, rax
call fcn.1400d5528
mov rax, qword [rdi]
cmp dword [rax - 0x10], 0
je 0x14004e679
lea r8, [0x14015d76c]
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.14001b580
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14004e660
cmp dword [rbx + 0x10], 0
jl 0x14004e651
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14004e651
call fcn.1400027c0
mov rdi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x14004e646
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x38], rax
jmp 0x14004e660
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x38]
call fcn.140002670
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004e679
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, str.D_r_
mov rax, qword [str.D_r_]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
mov r9d, dword [0x1401d6d80]
lea ecx, [r9 + 2]
lea eax, [r9 + 1]
imul ecx, eax
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, 0x10
jne 0x14004e750
mov r14d, esi
lea r15, [rbp + 0x340]
nop word [rax + rax]
mov r10d, esi
nop word [rax + rax]
lea edi, [r10 + 1]
lea ecx, [r14 + 1]
mov eax, r9d
cdq
idiv ecx
mov r8d, edx
mov ecx, r9d
sub ecx, r14d
imul r8d, ecx
mov eax, r9d
cdq
idiv edi
add r8d, eax
sub r8d, r10d
mov dword [r15], r8d
mov edx, r8d
lea rcx, [0x14015d74c]
call fcn.1400d5714
mov r10d, edi
add r15, 4
cmp edi, 0x18
jge 0x14004e73e
mov r9d, dword [0x1401d6d80]
jmp 0x14004e6f0
inc r14d
cmp r14d, 6
jge 0x14004e750
mov r9d, dword [0x1401d6d80]
jmp 0x14004e6e0
xor r8d, r8d
mov rdx, r13
lea rcx, [rbp - 0x70]
call fcn.14004c6a0
nop
mov r8, rax
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x78]
call fcn.140010150
nop
mov r13, qword [rax]
lea rcx, [r13 - 0x18]
lea rdi, [rbx - 0x18]
mov r14d, 1
cmp rcx, rdi
je 0x14004e8c0
cmp dword [rdi + 0x10], 0
jl 0x14004e7c0
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14004e7c0
call fcn.1400027c0
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x14004e7b7
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
jmp 0x14004e8bb
movsxd r15, dword [r13 - 0x10]
test r15d, r15d
jne 0x14004e81d
mov r15, qword [rdi]
cmp dword [rdi + 8], 0
je 0x14004e8c0
cmp dword [rdi + 0x10], 0
jge 0x14004e7f8
cmp dword [rbx - 0xc], 0
jge 0x14004e7ed
mov ecx, 0x80070057
call fcn.140001920
int3
mov dword [rbx - 0x10], esi
mov word [rbx], si
jmp 0x14004e8c0
lock add dword [rdi + 0x10], 0xffffffff
jg 0x14004e80b
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x18]
add rax, 0x18
jmp 0x14004e8bb
test r13, r13
jne 0x14004e82d
mov ecx, 0x80070057
call fcn.140001920
int3
mov eax, dword [rbx - 0x10]
mov dword [rsp + 0x4c], eax
mov r12, r13
sub r12, rbx
sar r12, 1
test r15d, r15d
jns 0x14004e84d
mov ecx, 0x80070057
call fcn.140001920
int3
mov ecx, r14d
sub ecx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, r15d
or eax, ecx
jge 0x14004e86f
mov edx, r15d
lea rcx, [rsp + 0x40]
call fcn.140002760
mov rbx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x4c]
lea rdi, [r15 + r15]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
mov r9, rdi
add rdx, rdx
cmp r12, rax
ja 0x14004e894
lea r8, [rbx + r12*2]
call fcn.1400d562c
jmp 0x14004e89c
mov r8, r13
call fcn.1400d57ec
cmp r15d, dword [rbx - 0xc]
jg 0x14004e8b0
mov dword [rbx - 0x10], r15d
mov word [rdi + rbx], si
or r12, 0xffffffffffffffff
jmp 0x14004e8c0
mov ecx, 0x80070057
call fcn.140001920
int3
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14004e8df
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14004e8fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, dword [0x1401d6d80]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 0x80000003
jge 0x14004e917
dec ecx
or ecx, 0xfffffffc
inc ecx
cmp ecx, 1
jne 0x14004e944
mov eax, r14d
mov r8d, 0xa5
nop word [rax + rax]
lea edx, [rax + r14]
lea r14d, [rax]
mov eax, edx
dec r8d
jns 0x14004e930
mov dword [0x1401d6d80], edx
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rbx, qword [rsp + 0x40]
mov rdx, rbx
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14004e9cd
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14004e987
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14004e9a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
mov rdx, qword [rdx]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], r12d
dec r12d
jg 0x14004e9c6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor al, al
jmp 0x14004ebd9
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
xor r8d, r8d
mov rdx, qword [rbp - 0x80]
mov rdx, qword [rdx]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov r14d, eax
mov ecx, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x70]
mov dword [rdx], ecx
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [0x1401d6d80]
lea r8d, [rdx + 2]
lea ecx, [rdx + 1]
imul r8d, ecx
imul r8d, edx
mov eax, 0x66666667
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub r8d, eax
cmp r8d, 3
jne 0x14004eb67
mov rdi, rsi
nop dword [rax]
call fcn.1400d57c0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rbp + rdi*8 - 0x50], xmm0
inc rdi
cmp rdi, 0x71
jb 0x14004ea50
mov r8d, 0x70
lea r9d, [r8 + 1]
nop word [rax + rax]
mov ecx, 0x70
cmp rsi, rcx
jge 0x14004eb58
cmp r8, 4
jl 0x14004eb2d
lea rax, [rbp + 0x320]
mov edx, 0x6c
sub rdx, rsi
shr rdx, 2
inc rdx
mov ecx, 0x1c
sub rcx, rdx
shl rcx, 2
nop word [rax + rax]
movsd xmm0, qword [rax + 0x10]
movsd xmm1, qword [rax + 8]
comisd xmm0, xmm1
jbe 0x14004eada
movsd qword [rax + 0x10], xmm1
movsd qword [rax + 8], xmm0
movsd xmm0, qword [rax + 8]
movsd xmm1, qword [rax]
comisd xmm0, xmm1
jbe 0x14004eaf2
movsd qword [rax + 8], xmm1
movsd qword [rax], xmm0
movsd xmm0, qword [rax]
movsd xmm1, qword [rax - 8]
comisd xmm0, xmm1
jbe 0x14004eb0a
movsd qword [rax], xmm1
movsd qword [rax - 8], xmm0
movsd xmm0, qword [rax - 8]
movsd xmm1, qword [rax - 0x10]
comisd xmm0, xmm1
jbe 0x14004eb24
movsd qword [rax - 8], xmm1
movsd qword [rax - 0x10], xmm0
sub rax, 0x20
dec rdx
jne 0x14004eac0
cmp rcx, rsi
jle 0x14004eb58
movsd xmm0, qword [rbp + rcx*8 - 0x50]
movsd xmm1, qword [rbp + rcx*8 - 0x58]
comisd xmm0, xmm1
jbe 0x14004eb50
movsd qword [rbp + rcx*8 - 0x50], xmm1
movsd qword [rbp + rcx*8 - 0x58], xmm0
dec rcx
cmp rcx, rsi
jg 0x14004eb32
inc rsi
dec r8
dec r9
jne 0x14004ea80
test r14d, r14d
jne 0x14004eb78
cmp dword [rsp + 0x48], 4
jne 0x14004eb78
mov dil, 1
jmp 0x14004eb7b
xor dil, dil
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14004eb95
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14004ebb4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
mov rdx, qword [rdx]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], r12d
dec r12d
jg 0x14004ebd5
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
movzx eax, dil
mov rcx, qword [rbp + 0x580]
xor rcx, rsp
call fcn.1400d4e00
add rsp, 0x698
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret